diff --git a/mtapi_cpp/include/embb/mtapi/action.h b/mtapi_cpp/include/embb/mtapi/action.h index f9f6c35..fad2235 100644 --- a/mtapi_cpp/include/embb/mtapi/action.h +++ b/mtapi_cpp/include/embb/mtapi/action.h @@ -44,6 +44,8 @@ class Action { /** * Constructs an Action. * The Action object will be invalid. + * + * \waitfree */ Action() { handle_.id = 0; @@ -52,6 +54,8 @@ class Action { /** * Copies an Action. + * + * \waitfree */ Action( Action const & other /**< Action to copy */ @@ -63,6 +67,7 @@ class Action { * Copies an Action. * * \returns Reference to this object. + * \waitfree */ Action & operator=( Action const & other /**< Action to copy */ @@ -73,6 +78,8 @@ class Action { /** * Deletes an Action. + * + * \threadsafe */ void Delete() { mtapi_action_delete(handle_, MTAPI_INFINITE, MTAPI_NULL); @@ -94,6 +101,8 @@ class Action { private: /** * Constructs an Action. + * + * \threadsafe */ Action( mtapi_job_id_t job_id, /**< Job ID the Action belongs to */ diff --git a/mtapi_cpp/include/embb/mtapi/group.h b/mtapi_cpp/include/embb/mtapi/group.h index ac620eb..ea61ec2 100644 --- a/mtapi_cpp/include/embb/mtapi/group.h +++ b/mtapi_cpp/include/embb/mtapi/group.h @@ -53,6 +53,8 @@ class Group { public: /** * Copies a Group. + * + * \waitfree */ Group( Group const & other /**< Group to copy */ @@ -64,6 +66,7 @@ class Group { * Copies a Group. * * \returns Reference to this object. + * \waitfree */ Group & operator=( Group const & other /**< Group to copy */ @@ -74,6 +77,8 @@ class Group { /** * Deletes a Group object. + * + * \threadsafe */ void Delete() { // delete the group, ignore status @@ -257,6 +262,8 @@ class Group { /** * Constructs a Group object with given attributes and ID. * Requires an initialized Node. + * + * \threadsafe */ Group( mtapi_group_id_t id, /**< A user defined ID of the Group. */ @@ -268,14 +275,21 @@ class Group { internal::CheckStatus(status); } + /** + * Starts a new Task in this Group. + * + * \returns The handle to the started Task. + * \threadsafe + */ Task Start( - mtapi_task_id_t task_id, - mtapi_job_hndl_t job, - const void * arguments, - mtapi_size_t arguments_size, - void * results, - mtapi_size_t results_size, + mtapi_task_id_t task_id, /**< A user defined ID of the Task. */ + mtapi_job_hndl_t job, /**< The Job to execute. */ + const void * arguments, /**< Pointer to the arguments. */ + mtapi_size_t arguments_size, /**< Size of the argument buffer. */ + void * results, /**< Pointer to the results. */ + mtapi_size_t results_size, /**< Size of the result buffer. */ mtapi_task_attributes_t const * attributes + /**< Attributes of the Task */ ) { mtapi_status_t status; mtapi_task_hndl_t task_hndl = diff --git a/mtapi_cpp/include/embb/mtapi/node.h b/mtapi_cpp/include/embb/mtapi/node.h index c45056e..25dac37 100644 --- a/mtapi_cpp/include/embb/mtapi/node.h +++ b/mtapi_cpp/include/embb/mtapi/node.h @@ -292,6 +292,7 @@ class Node { * Get the job with the given id in the domain of the node. * * \returns The handle for the requested Job. + * \waitfree */ Job GetJob( mtapi_job_id_t job_id /**< ID of the job to return */ @@ -303,6 +304,7 @@ class Node { * Get the job with the given id in the specified domain. * * \returns The handle for the requested Job. + * \waitfree */ Job GetJob( mtapi_job_id_t job_id, /**< ID of the job to return */ @@ -315,6 +317,7 @@ class Node { * Constructs an Action. * * \returns The handle for the new Action. + * \lockfree */ Action CreateAction( mtapi_job_id_t job_id, /**< Job ID the Action belongs to */ @@ -333,6 +336,7 @@ class Node { * Constructs an Action. * * \returns The handle for the new Action. + * \lockfree */ Action CreateAction( mtapi_job_id_t job_id, /**< Job ID the Action belongs to */ @@ -349,6 +353,7 @@ class Node { * Constructs an Action. * * \returns The handle for the new Action. + * \lockfree */ Action CreateAction( mtapi_job_id_t job_id, /**< Job ID the Action belongs to */ @@ -363,6 +368,7 @@ class Node { * Constructs an Action. * * \returns The handle for the new Action. + * \lockfree */ Action CreateAction( mtapi_job_id_t job_id, /**< Job ID the Action belongs to */ @@ -375,6 +381,7 @@ class Node { * Constructs a Group object with default attributes. * * \returns The handle for the new Group. + * \lockfree */ Group CreateGroup() { return Group(MTAPI_GROUP_ID_NONE, MTAPI_DEFAULT_GROUP_ATTRIBUTES); @@ -384,6 +391,7 @@ class Node { * Constructs a Group object with default attributes and the given ID. * * \returns The handle for the new Group. + * \lockfree */ Group CreateGroup( mtapi_group_id_t id /**< A user defined ID of the Group. */ @@ -395,6 +403,7 @@ class Node { * Constructs a Group object using the given Attributes. * * \returns The handle for the new Group. + * \lockfree */ Group CreateGroup( GroupAttributes const & group_attr /**< Attributes for the Group. */ @@ -406,6 +415,7 @@ class Node { * Constructs a Group object with given attributes and ID. * * \returns The handle for the new Group. + * \lockfree */ Group CreateGroup( mtapi_group_id_t id, /**< A user defined ID of the Group. */ @@ -418,6 +428,7 @@ class Node { * Constructs a Queue with the given Job and default attributes. * * \returns The handle for the new Queue. + * \lockfree */ Queue CreateQueue( Job & job /**< The Job to use for the Queue. */ @@ -429,6 +440,7 @@ class Node { * Constructs a Queue with the given Job and QueueAttributes. * * \returns The handle for the new Queue. + * \lockfree */ Queue CreateQueue( Job const & job, /**< The Job to use for the Queue. */ diff --git a/mtapi_cpp/include/embb/mtapi/queue.h b/mtapi_cpp/include/embb/mtapi/queue.h index c747b59..4ccdff9 100644 --- a/mtapi_cpp/include/embb/mtapi/queue.h +++ b/mtapi_cpp/include/embb/mtapi/queue.h @@ -53,6 +53,8 @@ class Queue { public: /** * Copies a Queue. + * + * \waitfree */ Queue( Queue const & other /**< The Queue to copy */ @@ -64,6 +66,7 @@ class Queue { * Copies a Queue. * * \returns Reference to this object. + * \waitfree */ Queue & operator=( Queue const & other /**< The Queue to copy */ @@ -74,6 +77,8 @@ class Queue { /** * Deletes a Queue object. + * + * \threadsafe */ void Delete() { mtapi_queue_delete(handle_, MTAPI_INFINITE, MTAPI_NULL);