From 8834481a747cd9462c42d7001895427a6d76c869 Mon Sep 17 00:00:00 2001 From: Winter Date: Sat, 30 Jan 2016 12:03:00 +0100 Subject: [PATCH] tasks_cpp: add function to query for the maximum number of queues --- tasks_cpp/include/embb/tasks/node.h | 10 ++++++++++ tasks_cpp/src/node.cc | 2 ++ 2 files changed, 12 insertions(+) diff --git a/tasks_cpp/include/embb/tasks/node.h b/tasks_cpp/include/embb/tasks/node.h index 094b34d..6bc3f36 100644 --- a/tasks_cpp/include/embb/tasks/node.h +++ b/tasks_cpp/include/embb/tasks/node.h @@ -120,6 +120,15 @@ class Node { static void Finalize(); /** + * Returns the number of available queues. + * \return The number of available queues + * \waitfree + */ + mtapi_uint_t GetQueueCount() const { + return queue_count_; + } + + /** * Returns the number of available cores. * \return The number of available cores * \waitfree @@ -218,6 +227,7 @@ class Node { mtapi_size_t node_local_data_size, mtapi_task_context_t * context); + mtapi_uint_t queue_count_; mtapi_uint_t core_count_; mtapi_uint_t worker_thread_count_; mtapi_action_hndl_t action_handle_; diff --git a/tasks_cpp/src/node.cc b/tasks_cpp/src/node.cc index 362252c..68cbf15 100644 --- a/tasks_cpp/src/node.cc +++ b/tasks_cpp/src/node.cc @@ -74,6 +74,8 @@ Node::Node( EMBB_THROW(embb::base::ErrorException, "mtapi::Node could not initialize mtapi"); } + mtapi_node_get_attribute(node_id, MTAPI_NODE_MAX_QUEUES, &queue_count_, sizeof(queue_count_), &status); + assert(MTAPI_SUCCESS == status); core_count_ = info.hardware_concurrency; worker_thread_count_ = embb_core_set_count(&attr->core_affinity); action_handle_ = mtapi_action_create(TASKS_CPP_JOB, action_func, -- libgit2 0.26.0