ARGOBOTS
dce6e727ffc4ca5b3ffc04cb9517c6689be51ec5
|
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_yield_to (ABT_thread thread) |
Yield the calling ULT to another ULT. More... | |
int | ABT_self_resume_yield_to (ABT_thread thread) |
Yield the calling ULT to another suspended ULT. More... | |
int | ABT_self_suspend (void) |
Suspend the calling ULT. More... | |
int | ABT_self_suspend_to (ABT_thread thread) |
Suspend the calling ULT and jump to another ULT. More... | |
int | ABT_self_resume_suspend_to (ABT_thread thread) |
Suspend the calling ULT and jump to another suspended ULT. More... | |
int | ABT_self_exit (void) |
Terminate a calling ULT. More... | |
int | ABT_self_exit_to (ABT_thread thread) |
Terminate the calling ULT and jump to another ULT. More... | |
int | ABT_self_resume_exit_to (ABT_thread thread) |
Terminate the calling ULT and jump to another suspended ULT. More... | |
int | ABT_self_schedule (ABT_thread thread, ABT_pool pool) |
Execute a work unit on the 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_exit_to | ( | ABT_thread | thread | ) |
Terminate the calling ULT and jump to another ULT.
ABT_self_exit_to()
terminates the calling ULT and schedules the ULT thread
as a child thread of the calling ULT's parent. This routine does not return if it succeeds. It is the user's responsibility to pop thread
from its associated pool before calling this routine.
ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if the caller is the primary ULT.ABT_ERR_INV_THREAD
is returned if thread
is the caller.thread
is accessed concurrently, the results are undefined.thread
, the pool associated with thread
is in a pool, the results are undefined.thread
is not ready, the results are undefined.[in] | thread | handle to the target thread |
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_resume_exit_to | ( | ABT_thread | thread | ) |
Terminate the calling ULT and jump to another suspended ULT.
ABT_self_resume_exit_to()
terminates the calling ULT, resumes the ULT thread
, and schedules thread
as a child thread of the calling ULT's parent. This routine does not return if it succeeds.
ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if the caller is the primary ULT.thread
is accessed concurrently, the results are undefined.thread
is not suspended, the results are undefined.[in] | thread | handle to the target ULT |
int ABT_self_resume_suspend_to | ( | ABT_thread | thread | ) |
Suspend the calling ULT and jump to another suspended ULT.
ABT_self_resume_suspend_to()
suspends the execution of the calling ULT, resumes the ULT thread
, and schedules thread
as a child thread of the calling ULT's parent. 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_SUCCESS
is returned if this routine succeeds.ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.thread
is accessed concurrently, the results are undefined.thread
is not suspended, the results are undefined.[in] | thread | handle to the target ULT |
int ABT_self_resume_yield_to | ( | ABT_thread | thread | ) |
Yield the calling ULT to another suspended ULT.
ABT_self_resume_yield_to()
yields the calling ULT, resumes the ULT thread
, and schedules thread
as a child thread of the calling ULT's parent. The calling ULT is pushed to its associated pool.
ABT_SUCCESS
is returned if this routine succeeds.ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.thread
is accessed concurrently, the results are undefined.thread
is not suspended, the results are undefined.[in] | thread | handle to the target ULT |
int ABT_self_schedule | ( | ABT_thread | thread, |
ABT_pool | pool | ||
) |
Execute a work unit on the calling ULT.
ABT_self_schedule()
runs the work unit thread
as a child work unit on the calling ULT, which becomes a parent ULT. If pool
is not ABT_POOL_NULL
, this routine associates thread
with the pool pool
before thread
is scheduled. The calling ULT will be resumed when a child work unit finishes or yields.
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.ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_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.thread
is not ready, the results are undefined.[in] | thread | work unit handle |
[in] | pool | pool handle |
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_suspend_to | ( | ABT_thread | thread | ) |
Suspend the calling ULT and jump to another ULT.
ABT_self_suspend_to()
suspends the execution of the calling ULT and schedules the ULT thread
as a child thread of the calling ULT's parent. 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. It is the user's responsibility to pop thread
from its associated pool before calling this routine.
ABT_SUCCESS
is returned if this routine succeeds.ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the caller.thread
is accessed concurrently, the results are undefined.thread
, the pool associated with thread
is in a pool, the results are undefined.thread
is not ready, the results are undefined.[in] | thread | handle to the target thread |
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.int ABT_self_yield_to | ( | ABT_thread | thread | ) |
Yield the calling ULT to another ULT.
ABT_self_yield_to()
yields the calling ULT and schedules the ULT thread
as a child thread of the calling ULT's parent. The calling ULT is pushed to its associated pool. It is the user's responsibility to pop thread
from its associated pool before calling this routine.
ABT_SUCCESS
is returned if this routine succeeds.ABT_ERR_INV_THREAD
is returned if thread
is ABT_THREAD_NULL
or ABT_TASK_NULL
.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 thread
is a tasklet.ABT_ERR_INV_THREAD
is returned if the caller is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the work unit of the main scheduler.ABT_ERR_INV_THREAD
is returned if thread
is the caller.thread
is accessed concurrently, the results are undefined.thread
, the pool associated with thread
is in a pool, the results are undefined.thread
is not ready, the results are undefined.[in] | thread | handle to the target thread |