diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/block_actor.cpp | 15 | ||||
-rw-r--r-- | lib/block_task.cpp | 2 | ||||
-rw-r--r-- | lib/gras_impl/debug.hpp | 4 |
3 files changed, 16 insertions, 5 deletions
diff --git a/lib/block_actor.cpp b/lib/block_actor.cpp index af59009..61660f9 100644 --- a/lib/block_actor.cpp +++ b/lib/block_actor.cpp @@ -15,14 +15,25 @@ // along with io_sig program. If not, see <http://www.gnu.org/licenses/>. #include <gras_impl/block_actor.hpp> +#include <boost/thread/thread.hpp> #include <Theron/Framework.h> using namespace gnuradio; -static Theron::Framework global_framework(8); //TODO needs API config +static size_t hardware_concurrency(void) +{ + const size_t n = boost::thread::hardware_concurrency(); + return std::max(size_t(2), n); +} + +static Theron::Framework &get_global_framework(void) +{ + static Theron::Framework framework(hardware_concurrency()); + return framework; +} BlockActor::BlockActor(void): - Apology::Worker(global_framework) + Apology::Worker(get_global_framework()) { this->register_handlers(); } diff --git a/lib/block_task.cpp b/lib/block_task.cpp index 176b161..761e923 100644 --- a/lib/block_task.cpp +++ b/lib/block_task.cpp @@ -74,7 +74,7 @@ void BlockActor::mark_done(void) void BlockActor::handle_task(void) { #ifdef WORK_DEBUG - WorkDebugPrinter WDP(this->name); + WorkDebugPrinter WDP(block_ptr->to_string()); #endif //------------------------------------------------------------------ diff --git a/lib/gras_impl/debug.hpp b/lib/gras_impl/debug.hpp index 222a33d..f7117ee 100644 --- a/lib/gras_impl/debug.hpp +++ b/lib/gras_impl/debug.hpp @@ -32,7 +32,7 @@ //---------------------------------------------------------------------- //#define WORK_DEBUG #define ASSERTING -#define MESSAGE_TRACING +//#define MESSAGE_TRACING //---------------------------------------------------------------------- //-- various debug prints @@ -41,7 +41,7 @@ #define VAR(x) std::cerr << #x << " = " << (x) << std::endl << std::flush; #ifdef MESSAGE_TRACING -#define MESSAGE_TRACER() std::cerr << "Handle message: " << block_ptr->to_string() << " in " << BOOST_CURRENT_FUNCTION << std::endl << std::flush; +#define MESSAGE_TRACER() std::cerr << block_ptr->to_string() << " in " << BOOST_CURRENT_FUNCTION << std::endl << std::flush; #else #define MESSAGE_TRACER() #endif |