summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------Apology0
-rw-r--r--lib/block_actor.cpp15
-rw-r--r--lib/block_task.cpp2
-rw-r--r--lib/gras_impl/debug.hpp4
4 files changed, 16 insertions, 5 deletions
diff --git a/Apology b/Apology
-Subproject e3a41481ba41cbd8160d5d303271a1fe45426b1
+Subproject 95135476aa029eb3b669bf15aa37bbc095675ea
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