|
ARGOBOTS
1.1
|
This group is for the self wok unit. More...
Functions | |
| int | ABT_self_get_xstream (ABT_xstream *xstream) |
| Get an execution stream that is running the calling work unit. More... | |
| int | ABT_self_get_xstream_rank (int *rank) |
| Return a rank of an execution stream that is running the calling work unit. More... | |
| int | ABT_self_get_thread (ABT_thread *thread) |
| Get the calling work unit. More... | |
| int | ABT_self_get_thread_id (ABT_unit_id *id) |
| Get ID of the calling work unit. More... | |
| int | ABT_self_get_task (ABT_thread *thread) |
| Get the calling work unit. More... | |
| int | ABT_self_get_task_id (ABT_unit_id *id) |
| Get ID of the calling work unit. More... | |
| int | ABT_self_set_specific (ABT_key key, void *value) |
| Associate a value with a work-unit-specific data key in the calling work unit. More... | |
| int | ABT_self_get_specific (ABT_key key, void **value) |
| Get a value associated with a work-unit-specific data key in the calling work unit. More... | |
| int | ABT_self_get_type (ABT_unit_type *type) |
| Obtain a type of the caller. More... | |
| int | ABT_self_is_primary (ABT_bool *is_primary) |
| Check if the caller is the primary ULT. More... | |
| int | ABT_self_on_primary_xstream (ABT_bool *on_primary) |
| Check if the caller is running on the primary execution stream. More... | |
| int | ABT_self_get_last_pool (ABT_pool *pool) |
| Get the last pool of the calling work unit. More... | |
| int | ABT_self_get_last_pool_id (int *pool_id) |
| Get ID of the last pool of the calling work unit. More... | |
| int | ABT_self_set_associated_pool (ABT_pool pool) |
| Set an associated pool for the calling work unit. More... | |
| int | ABT_self_get_unit (ABT_unit *unit) |
| Get a unit handle of the calling work unit. More... | |
| int | ABT_self_yield (void) |
| Yield the calling ULT to its parent ULT. More... | |
| int | ABT_self_suspend (void) |
| Suspend the calling ULT. More... | |
| int | ABT_self_exit (void) |
| Terminate a calling ULT. More... | |
| int | ABT_self_set_arg (void *arg) |
| Set an argument for a work-unit function of the calling work unit. More... | |
| int | ABT_self_get_arg (void **arg) |
| Retrieve an argument for a work-unit function of the calling work unit. More... | |
| int | ABT_self_get_thread_func (void(**thread_func)(void *)) |
| Retrieve a work-unit function of the calling work unit. More... | |
| int | ABT_self_is_unnamed (ABT_bool *is_unnamed) |
| Check if the calling work unit is unnamed. More... | |
This group is for the self wok unit.
| int ABT_self_exit | ( | void | ) |
Terminate a calling ULT.
ABT_self_exit() terminates the calling ULT. This routine does not return if it succeeds.
ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_THREAD is returned if the caller is a tasklet.ABT_ERR_INV_THREAD is returned if the caller is the primary ULT.| int ABT_self_get_arg | ( | void ** | arg | ) |
Retrieve an argument for a work-unit function of the calling work unit.
ABT_self_get_arg() returns the argument that is passed to the caller's work-unit function through arg.
[Argobots 1.x] This routine returns ABT_ERR_UNINITIALIZED if Argobots is not initialized.
[Argobots 2.0] The results of this routine are undefined if Argobots is not initialized.
[Argobots 1.x] arg is set to NULL if an error occurs.
[Argobots 2.0] arg is not updated if an error occurs.
arg when an error occurs. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.arg is NULL, the results are undefined.| [out] | arg | argument for the caller's function |
| int ABT_self_get_last_pool | ( | ABT_pool * | pool | ) |
Get the last pool of the calling work unit.
ABT_self_get_last_pool() returns the last pool associated with the calling work unit through pool.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.pool is NULL, the results are undefined.| [out] | pool | pool handle |
| int ABT_self_get_last_pool_id | ( | int * | pool_id | ) |
Get ID of the last pool of the calling work unit.
ABT_self_get_last_pool_id() returns the last pool's ID of the calling work unit through pool_id.
[Argobots 1.x] This routine returns ABT_ERR_UNINITIALIZED if Argobots is not initialized.
[Argobots 2.0] The results of this routine are undefined if Argobots is not initialized.
[Argobots 1.x] pool_id is set to -1 if an error occurs.
[Argobots 2.0] pool_id is not updated if an error occurs.
pool_id when an error occurs. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.pool_id is NULL, the results are undefined.| [out] | pool_id | pool ID |
| int ABT_self_get_specific | ( | ABT_key | key, |
| void ** | value | ||
| ) |
Get a value associated with a work-unit-specific data key in the calling work unit.
ABT_self_get_specific() returns the value in the caller associated with the work-unit-specific data key key in the calling work unit through value. If the caller has never set a value for key, this routine sets value to NULL.
Work-unit-specific values associated with a work-unit-specific data key are read and updated atomically.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_KEY is returned if key is ABT_KEY_NULL.value is NULL, the results are undefined.| [in] | key | work-unit-specific data key handle |
| [out] | value | value associated with key |
| int ABT_self_get_task | ( | ABT_thread * | thread | ) |
Get the calling work unit.
The functionality of this routine is the same as ABT_self_get_thread().
| int ABT_self_get_task_id | ( | ABT_unit_id * | id | ) |
Get ID of the calling work unit.
The functionality of this routine is the same as ABT_self_get_thread_id().
| int ABT_self_get_thread | ( | ABT_thread * | thread | ) |
Get the calling work unit.
ABT_self_get_thread() returns the handle of the calling work unit through thread.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.thread is NULL, the results are undefined.| [out] | thread | work unit handle |
| int ABT_self_get_thread_func | ( | void(**)(void *) | thread_func | ) |
Retrieve a work-unit function of the calling work unit.
ABT_self_get_thread_func() returns the work-unit function of the calling work unit through thread_func.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.thread_func is NULL, the results are undefined.| [out] | thread_func | the caller's function |
| int ABT_self_get_thread_id | ( | ABT_unit_id * | id | ) |
Get ID of the calling work unit.
ABT_self_get_thread_id() returns the ID of the calling work unit through id.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.id is NULL, the results are undefined.| [out] | id | ID of the calling work unit |
| int ABT_self_get_type | ( | ABT_unit_type * | type | ) |
Obtain a type of the caller.
ABT_self_get_type() returns a type of the calling work unit through type. If the caller is a ULT, type is set to ABT_UNIT_TYPE_THREAD. If the caller is a tasklet, type is set to ABT_UNIT_TYPE_TASK. Otherwise (i.e., if the caller is an external thread), type is set to ABT_UNIT_TYPE_EXT.
[Argobots 1.x] If an external thread calls this routine, ABT_ERR_INV_XSTREAM is returned.
[Argobots 2.0] An external thread may call this routine.
[Argobots 1.x] This routine returns ABT_ERR_UNINITIALIZED if Argobots is not initialized.
[Argobots 2.0] The results of this routine are undefined if Argobots is not initialized.
[Argobots 1.x] type is set to ABT_UNIT_TYPE_EXT if an error occurs.
[Argobots 2.0] type is not updated if an error occurs.
type when an error occurs. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.type is NULL, the results are undefined.| [out] | type | work unit type |
| int ABT_self_get_unit | ( | ABT_unit * | unit | ) |
Get a unit handle of the calling work unit.
ABT_self_get_unit() returns the ABT_unit handle associated with the calling work unit through unit.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.unit is NULL, the results are undefined.| [out] | unit | work unit handle |
| int ABT_self_get_xstream | ( | ABT_xstream * | xstream | ) |
Get an execution stream that is running the calling work unit.
ABT_self_get_xstream() returns the handle of the execution stream that is running the calling work unit through xstream.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.xstream is NULL, the results are undefined.| [out] | xstream | execution stream handle |
| int ABT_self_get_xstream_rank | ( | int * | rank | ) |
Return a rank of an execution stream that is running the calling work unit.
ABT_self_get_xstream_rank() returns the rank of the execution stream that is running the calling work unit through rank.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.rank is NULL, the results are undefined.| [out] | rank | execution stream rank |
| int ABT_self_is_primary | ( | ABT_bool * | is_primary | ) |
Check if the caller is the primary ULT.
ABT_self_is_primary() checks whether the caller is the primary ULT and returns the result through is_primary. If the caller is the primary ULT, is_primary is set to ABT_TRUE. Otherwise, is_primary is set to ABT_FALSE.
[Argobots 1.x] If a tasklet calls this routine, ABT_ERR_INV_THREAD is returned.
[Argobots 2.0] A tasklet may call this routine.
[Argobots 1.x] If an external thread calls this routine, ABT_ERR_INV_XSTREAM is returned.
[Argobots 2.0] An external thread may call this routine.
[Argobots 1.x] This routine returns ABT_ERR_UNINITIALIZED if Argobots is not initialized.
[Argobots 2.0] The results of this routine are undefined if Argobots is not initialized.
[Argobots 1.x] is_primary is set to ABT_FALSE if an error occurs.
[Argobots 2.0] is_primary is not updated if an error occurs.
is_primary when an error occurs. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_THREAD is returned if the caller is a tasklet.is_primary is NULL, the results are undefined.| [out] | is_primary | result (ABT_TRUE: primary ULT, ABT_FALSE: not) |
| int ABT_self_is_unnamed | ( | ABT_bool * | is_unnamed | ) |
Check if the calling work unit is unnamed.
ABT_self_is_unnamed() checks if the calling work unit is unnamed and returns the result through is_unnamed. is_unnamed is set to ABT_TRUE if the calling work unit is unnamed. Otherwise, is_unnamed is set to ABT_FALSE.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.is_unnamed is NULL, the results are undefined.| [out] | is_unnamed | result (ABT_TRUE: unnamed, ABT_FALSE: not) |
| int ABT_self_on_primary_xstream | ( | ABT_bool * | on_primary | ) |
Check if the caller is running on the primary execution stream.
ABT_self_on_primary_xstream() checks whether the caller is running on the primary execution stream and returns the result through on_primary. If the caller is a work unit running on the primary execution stream, on_primary is set to ABT_TRUE. Otherwise, on_primary is set to ABT_FALSE.
[Argobots 1.x] If an external thread calls this routine, ABT_ERR_INV_XSTREAM is returned.
[Argobots 2.0] An external thread may call this routine.
[Argobots 1.x] This routine returns ABT_ERR_UNINITIALIZED if Argobots is not initialized.
[Argobots 2.0] The results of this routine are undefined if Argobots is not initialized.
[Argobots 1.x] on_primary is set to ABT_FALSE if an error occurs.
[Argobots 2.0] on_primary is not updated if an error occurs.
on_primary when an error occurs. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.on_primary is NULL, the results are undefined.| [out] | on_primary | result (ABT_TRUE: primary execution stream, ABT_FALSE: not) |
| int ABT_self_set_arg | ( | void * | arg | ) |
Set an argument for a work-unit function of the calling work unit.
ABT_self_set_arg() sets the argument arg for the caller's work-unit function.
ABT_ERR_UNINITIALIZED if Argobots is not initialized.ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_UNINITIALIZED is returned if the Argobots runtime is not initialized.| [in] | arg | argument a work-unit function of the calling work unit |
| int ABT_self_set_associated_pool | ( | ABT_pool | pool | ) |
Set an associated pool for the calling work unit.
ABT_self_set_associated_pool() changes the associated pool of the work unit thread to the pool pool. This routine does not yield the calling work unit.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_POOL is returned if pool is ABT_POOL_NULL.ABT_ERR_MEM is returned if memory allocation fails.ABT_ERR_SYS is returned if an error related to system calls and standard libraries occurs.ABT_ERR_UNIT is returned if u_create_from_thread() fails.| [in] | pool | pool handle |
| int ABT_self_set_specific | ( | ABT_key | key, |
| void * | value | ||
| ) |
Associate a value with a work-unit-specific data key in the calling work unit.
ABT_self_set_specific() associates a value value with the work-unit-specific data key key in the calling work unit. Different work units may bind different values to the same key.
Work-unit-specific values associated with a work-unit-specific data key are read and updated atomically.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_KEY is returned if key is ABT_KEY_NULL.ABT_ERR_MEM is returned if memory allocation fails.ABT_ERR_SYS is returned if an error related to system calls and standard libraries occurs.| [in] | key | work-unit-specific data key handle |
| [in] | value | value associated with key |
| int ABT_self_suspend | ( | void | ) |
Suspend the calling ULT.
ABT_self_suspend() suspends the execution of the calling ULT and switches to its parent ULT. The calling ULT is not pushed to its associated pool and its state becomes blocked. ABT_thread_resume() awakens the suspended ULT and pushes it back to its associated pool.
ABT_ERR_INV_THREAD is returned if this routine is called by an external thread.ABT_ERR_INV_XSTREAM is returned if this routine is called by an external thread. ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.ABT_ERR_INV_THREAD is returned if the caller is a tasklet.| int ABT_self_yield | ( | void | ) |
Yield the calling ULT to its parent ULT.
ABT_self_yield() yields the calling ULT and pushes the calling ULT to its associated pool. Its parent ULT will be resumed.
ABT_SUCCESS is returned if this routine succeeds.ABT_ERR_INV_THREAD is returned if the caller is a tasklet.ABT_ERR_INV_XSTREAM is returned if the caller is an external thread.
1.8.17