Go to the documentation of this file.
124 size_t val = (uintptr_t)unit;
126 size_t base_val = val >> 3;
127 #if ABTI_UNIT_HASH_TABLE_SIZE_EXP <= 14
130 #if ABTI_UNIT_HASH_TABLE_SIZE_EXP <= 9
static ABT_bool ABTI_unit_is_builtin(ABT_unit unit)
struct ABT_thread_opaque * ABT_thread
Work unit handle type.
static ABTU_ret_err int unit_map_thread(ABTI_global *p_global, ABT_unit unit, ABTI_thread *p_thread)
static ABTI_global * ABTI_global_get_global(void)
int ABT_unit_set_associated_pool(ABT_unit unit, ABT_pool pool)
No operation.
static unit_to_thread * atomic_acquire_load_unit_to_thread(const ABTI_atomic_unit_to_thread *p_ptr)
static size_t unit_get_hash_index(ABT_unit unit)
void ABTI_unit_init_hash_table(ABTI_global *p_global)
static ABT_thread ABTI_thread_get_handle(ABTI_thread *p_thread)
struct ABT_pool_opaque * ABT_pool
Pool handle type.
void ABTI_unit_finalize_hash_table(ABTI_global *p_global)
ABTI_unit_to_thread_entry unit_to_thread_entires[ABTI_UNIT_HASH_TABLE_SIZE]
static void atomic_relaxed_store_unit_to_thread(ABTI_atomic_unit_to_thread *p_ptr, unit_to_thread *val)
static void ABTD_spinlock_acquire(ABTD_spinlock *p_lock)
#define ABTI_UNIT_HASH_TABLE_SIZE_EXP
ABTU_ret_err int ABTI_unit_map_thread(ABTI_global *p_global, ABT_unit unit, ABTI_thread *p_thread)
static ABTU_ret_err int ABTU_malloc(size_t size, void **p_ptr)
#define ABT_ERR_INV_UNIT
Error code: invalid work unit for scheduling.
static ABT_unit atomic_relaxed_load_unit(const atomic_unit *p_ptr)
static void atomic_relaxed_store_unit(atomic_unit *p_ptr, ABT_unit val)
struct ABT_unit_opaque * ABT_unit
Work unit handle type for scheduling.
static void unit_unmap_thread(ABTI_global *p_global, ABT_unit unit)
#define ABTI_ASSERT(cond)
static void ABTD_atomic_release_store_ptr(ABTD_atomic_ptr *ptr, void *val)
struct unit_to_thread unit_to_thread
#define ABT_SUCCESS
Error code: the routine returns successfully.
static unit_to_thread * atomic_relaxed_load_unit_to_thread(const ABTI_atomic_unit_to_thread *p_ptr)
static ABTI_thread * unit_get_thread_from_user_defined_unit(ABTI_global *p_global, ABT_unit unit)
struct atomic_unit atomic_unit
static ABTI_pool * ABTI_pool_get_ptr(ABT_pool pool)
static void ABTD_spinlock_clear(ABTD_spinlock *p_lock)
ABTI_atomic_unit_to_thread list
#define ABTI_CHECK_NULL_POOL_PTR(p)
static void ABTU_free(void *ptr)
static void ABTD_spinlock_release(ABTD_spinlock *p_lock)
static ABTI_thread * ABTI_unit_get_thread(ABTI_global *p_global, ABT_unit unit)
#define ABTI_UNIT_HASH_TABLE_SIZE
void ABTI_unit_unmap_thread(ABTI_global *p_global, ABT_unit unit)
static void atomic_release_store_unit_to_thread(ABTI_atomic_unit_to_thread *p_ptr, unit_to_thread *val)
ABTI_thread * ABTI_unit_get_thread_from_user_defined_unit(ABTI_global *p_global, ABT_unit unit)
static void * ABTD_atomic_acquire_load_ptr(const ABTD_atomic_ptr *ptr)
#define ABTI_CHECK_TRUE(cond, abt_errno)
static ABT_bool ABTD_spinlock_is_locked(const ABTD_spinlock *p_lock)
static void unit_init_hash_table(ABTI_global *p_global)
static void ABTD_atomic_relaxed_store_ptr(ABTD_atomic_ptr *ptr, void *val)
static void unit_finalize_hash_table(ABTI_global *p_global)
struct unit_to_thread * p_next
int ABT_unit_get_thread(ABT_unit unit, ABT_thread *thread)
Get a thread handle of the target work unit.
static void * ABTD_atomic_relaxed_load_ptr(const ABTD_atomic_ptr *ptr)