ARGOBOTS
dce6e727ffc4ca5b3ffc04cb9517c6689be51ec5
|
Go to the documentation of this file.
76 *rank = (int)p_local_xstream->
rank;
144 #ifdef ABT_CONFIG_USE_DOXYGEN
154 #ifdef ABT_CONFIG_USE_DOXYGEN
207 &p_local_xstream->p_thread->p_keytable, p_key, value);
253 *value =
ABTI_ktable_get(&p_local_xstream->p_thread->p_keytable, p_key);
295 #ifndef ABT_CONFIG_ENABLE_VER_20_API
304 if (!p_local_xstream) {
312 if (p_local_xstream) {
361 #ifndef ABT_CONFIG_ENABLE_VER_20_API
373 if (p_local_xstream) {
424 #ifndef ABT_CONFIG_ENABLE_VER_20_API
436 if (p_local_xstream) {
514 #ifndef ABT_CONFIG_ENABLE_VER_20_API
601 *unit = p_local_xstream->p_thread->unit;
1141 #ifndef ABT_CONFIG_ENABLE_VER_20_API
1148 p_local_xstream->p_thread->p_arg = arg;
1186 #ifndef ABT_CONFIG_ENABLE_VER_20_API
1194 *arg = p_local_xstream->p_thread->p_arg;
1227 *thread_func = p_local_xstream->p_thread->f_thread;
struct ABT_key_opaque * ABT_key
Work-unit-specific data key handle type.
#define ABT_ERR_INV_THREAD
Error code: invalid work unit.
int ABT_self_resume_suspend_to(ABT_thread thread)
Suspend the calling ULT and jump to another suspended ULT.
int ABT_self_schedule(ABT_thread thread, ABT_pool pool)
Execute a work unit on the calling ULT.
int ABT_bool
Boolean type.
@ ABTI_XSTREAM_TYPE_PRIMARY
#define ABTI_SETUP_LOCAL_XSTREAM(pp_local_xstream)
static void * ABTI_ktable_get(ABTD_atomic_ptr *pp_ktable, ABTI_key *p_key)
int ABT_self_get_arg(void **arg)
Retrieve an argument for a work-unit function of the calling work unit.
struct ABT_thread_opaque * ABT_thread
Work unit handle type.
static ABTI_key * ABTI_key_get_ptr(ABT_key key)
#define ABTI_SETUP_GLOBAL(pp_global)
int ABT_self_get_thread_func(void(**thread_func)(void *))
Retrieve a work-unit function of the calling work unit.
#define ABT_ERR_INV_XSTREAM
Error code: invalid execution stream.
static ABTI_global * ABTI_global_get_global(void)
#define ABTI_CHECK_ERROR(abt_errno)
int ABT_self_suspend_to(ABT_thread thread)
Suspend the calling ULT and jump to another ULT.
ABT_unit_id ABTI_thread_get_id(ABTI_thread *p_thread)
static ABT_thread ABTI_thread_get_handle(ABTI_thread *p_thread)
static ABTU_ret_err int ABTI_thread_set_associated_pool(ABTI_global *p_global, ABTI_thread *p_thread, ABTI_pool *p_pool)
int ABT_self_get_thread(ABT_thread *thread)
Get the calling work unit.
int ABT_self_get_last_pool(ABT_pool *pool)
Get the last pool of the calling work unit.
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.
int ABT_self_get_task(ABT_thread *thread)
Get the calling work unit.
struct ABT_pool_opaque * ABT_pool
Pool handle type.
static ABTU_ret_err int ABTI_ktable_set(ABTI_global *p_global, ABTI_local *p_local, ABTD_atomic_ptr *pp_ktable, ABTI_key *p_key, void *value)
static ABT_unit_type ABTI_thread_type_get_type(ABTI_thread_type type)
#define ABTI_THREAD_TYPE_PRIMARY
static ABT_xstream ABTI_xstream_get_handle(ABTI_xstream *p_xstream)
@ ABT_THREAD_STATE_BLOCKED
#define ABTI_CHECK_NULL_THREAD_PTR(p)
int ABT_self_on_primary_xstream(ABT_bool *on_primary)
Check if the caller is running on the primary execution stream.
uint64_t ABT_unit_id
Work unit ID type.
struct ABT_xstream_opaque * ABT_xstream
Execution stream handle type.
static ABTI_ythread * ABTI_thread_get_ythread_or_null(ABTI_thread *p_thread)
int ABT_self_suspend(void)
Suspend the calling ULT.
ABT_unit_type
Type of a work unit for scheduling.
int ABT_self_set_associated_pool(ABT_pool pool)
Set an associated pool for the calling work unit.
int ABT_self_get_last_pool_id(int *pool_id)
Get ID of the last pool of the calling work unit.
@ ABTI_YTHREAD_RESUME_YIELD_TO_KIND_USER
int ABT_self_is_primary(ABT_bool *is_primary)
Check if the caller is the primary ULT.
struct ABT_unit_opaque * ABT_unit
Work unit handle type for scheduling.
#define ABTI_ASSERT(cond)
ABT_bool ABTI_initialized(void)
static ABTI_local * ABTI_local_get_local(void)
#define ABTI_CHECK_NULL_YTHREAD_PTR(p)
int ABT_self_yield_to(ABT_thread thread)
Yield the calling ULT to another ULT.
int ABT_self_exit(void)
Terminate a calling ULT.
#define ABT_SUCCESS
Error code: the routine returns successfully.
static void ABTI_ythread_schedule(ABTI_global *p_global, ABTI_xstream **pp_local_xstream, ABTI_thread *p_thread)
static void ABTI_ythread_resume_yield_to(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target, ABTI_ythread_resume_yield_to_kind kind, ABT_sync_event_type sync_event_type, void *p_sync)
int ABT_self_exit_to(ABT_thread thread)
Terminate the calling ULT and jump to another ULT.
#define ABTI_SETUP_LOCAL_YTHREAD(pp_local_xstream, pp_ythread)
static int ABTD_atomic_acquire_load_int(const ABTD_atomic_int *ptr)
static void ABTI_ythread_yield(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABTI_ythread_yield_kind kind, ABT_sync_event_type sync_event_type, void *p_sync)
static ABTI_xstream * ABTI_local_get_xstream_or_null(ABTI_local *p_local)
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.
static ABTI_local * ABTI_xstream_get_local(ABTI_xstream *p_xstream)
int ABT_self_set_arg(void *arg)
Set an argument for a work-unit function of the calling work unit.
#define ABT_TRUE
True constant for ABT_bool.
static ABTI_pool * ABTI_pool_get_ptr(ABT_pool pool)
static ABTU_noreturn void ABTI_ythread_exit(ABTI_xstream *p_local_xstream, ABTI_ythread *p_self)
#define ABT_FALSE
False constant for ABT_bool.
static void ABTI_ythread_suspend_to(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target, ABT_sync_event_type sync_event_type, void *p_sync)
@ ABTI_YTHREAD_YIELD_TO_KIND_USER
int ABT_self_get_task_id(ABT_unit_id *id)
Get ID of the calling work unit.
#define ABTI_THREAD_TYPE_MAIN_SCHED
#define ABTI_UB_ASSERT(cond)
#define ABTI_CHECK_NULL_POOL_PTR(p)
int ABT_self_resume_yield_to(ABT_thread thread)
Yield the calling ULT to another suspended ULT.
@ ABTI_YTHREAD_YIELD_KIND_USER
#define ABTI_THREAD_TYPE_NAMED
int ABT_self_yield(void)
Yield the calling ULT to its parent ULT.
int ABT_self_get_xstream_rank(int *rank)
Return a rank of an execution stream that is running the calling work unit.
static void ABTI_ythread_yield_to(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target, ABTI_ythread_yield_to_kind kind, ABT_sync_event_type sync_event_type, void *p_sync)
int ABT_self_get_unit(ABT_unit *unit)
Get a unit handle of the calling work unit.
#define ABTI_CHECK_TRUE(cond, abt_errno)
int ABT_self_get_type(ABT_unit_type *type)
Obtain a type of the caller.
#define ABTI_CHECK_NULL_KEY_PTR(p)
static void ABTI_ythread_suspend(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABT_sync_event_type sync_event_type, void *p_sync)
int ABT_self_is_unnamed(ABT_bool *is_unnamed)
Check if the calling work unit is unnamed.
static void ABTI_ythread_resume_suspend_to(ABTI_xstream **pp_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target, ABT_sync_event_type sync_event_type, void *p_sync)
static ABTU_noreturn void ABTI_ythread_exit_to(ABTI_xstream *p_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target)
static ABTI_thread * ABTI_thread_get_ptr(ABT_thread thread)
static ABT_pool ABTI_pool_get_handle(ABTI_pool *p_pool)
int ABT_self_get_xstream(ABT_xstream *xstream)
Get an execution stream that is running the calling work unit.
int ABT_self_get_thread_id(ABT_unit_id *id)
Get ID of the calling work unit.
static ABTU_noreturn void ABTI_ythread_resume_exit_to(ABTI_xstream *p_local_xstream, ABTI_ythread *p_self, ABTI_ythread *p_target)
int ABT_self_resume_exit_to(ABT_thread thread)
Terminate the calling ULT and jump to another suspended ULT.