Go to the documentation of this file.
47 #ifndef ABT_CONFIG_ENABLE_VER_20_API
94 #ifndef ABT_CONFIG_ENABLE_VER_20_API
154 #ifndef ABT_CONFIG_ENABLE_VER_20_API
228 const struct timespec *abstime)
257 &p_cond->
lock, tar_time,
333 secs = ((double)p_ts->tv_sec) + 1.0e-9 * ((double)p_ts->tv_nsec);
static ABTI_mutex * ABTI_mutex_get_ptr(ABT_mutex mutex)
int ABT_bool
Boolean type.
static ABT_bool ABTI_waitlist_wait_timedout_and_unlock(ABTI_local **pp_local, ABTI_waitlist *p_waitlist, ABTD_spinlock *p_lock, double target_time, ABT_sync_event_type sync_event_type, void *p_sync)
static void ABTI_mutex_lock(ABTI_local **pp_local, ABTI_mutex *p_mutex)
int ABT_cond_free(ABT_cond *cond)
Free a condition variable.
int ABT_cond_timedwait(ABT_cond cond, ABT_mutex mutex, const struct timespec *abstime)
Wait on a condition variable with a timeout limit.
#define ABT_ERR_COND
Error code: error related to a condition variable.
static void ABTI_cond_fini(ABTI_cond *p_cond)
#define ABTI_CHECK_ERROR(abt_errno)
#define ABTI_THREAD_TYPE_YIELDABLE
struct ABT_mutex_opaque * ABT_mutex
Mutex handle type.
A struct that can be converted to ABT_cond.
#define ABTI_CHECK_NULL_COND_PTR(p)
#define ABTI_IS_ERROR_CHECK_ENABLED
#define ABT_ERR_INV_MUTEX
Error code: invalid mutex.
#define ABTI_THREAD_TYPE_EXT
static void ABTI_mutex_unlock(ABTI_local *p_local, ABTI_mutex *p_mutex)
static ABT_bool ABTI_waitlist_is_empty(ABTI_waitlist *p_waitlist)
#define ABTI_CHECK_NULL_MUTEX_PTR(p)
@ ABT_THREAD_STATE_BLOCKED
static void ABTD_spinlock_acquire(ABTD_spinlock *p_lock)
#define ABTI_HANDLE_ERROR(n)
static ABTU_ret_err int ABTU_malloc(size_t size, void **p_ptr)
static void ABTD_atomic_relaxed_store_int(ABTD_atomic_int *ptr, int val)
ABTI_mutex * p_waiter_mutex
static ABTI_local * ABTI_local_get_local(void)
int ABT_cond_create(ABT_cond *newcond)
Create a new condition variable.
static void ABTI_cond_init(ABTI_cond *p_cond)
#define ABTI_STATIC_ASSERT(cond)
static ABT_cond ABTI_cond_get_handle(ABTI_cond *p_cond)
#define ABT_SUCCESS
Error code: the routine returns successfully.
static ABTU_ret_err int ABTI_cond_wait(ABTI_local **pp_local, ABTI_cond *p_cond, ABTI_mutex *p_mutex)
int ABT_cond_broadcast(ABT_cond cond)
Broadcast a condition.
static double convert_timespec_to_sec(const struct timespec *p_ts)
int ABT_cond_wait(ABT_cond cond, ABT_mutex mutex)
Wait on a condition variable.
#define ABT_ERR_COND_TIMEDOUT
Error code: a return value when a condition variable is timed out.
static void ABTU_free(void *ptr)
static void ABTD_spinlock_release(ABTD_spinlock *p_lock)
struct ABT_cond_opaque * ABT_cond
Condition variable handle type.
struct ABTI_local ABTI_local
static void ABTI_cond_broadcast(ABTI_local *p_local, ABTI_cond *p_cond)
#define ABTI_CHECK_TRUE(cond, abt_errno)
static void ABTI_waitlist_signal(ABTI_local *p_local, ABTI_waitlist *p_waitlist)
static ABTI_xstream * ABTI_local_get_xstream(ABTI_local *p_local)
static ABTI_cond * ABTI_cond_get_ptr(ABT_cond cond)
int ABT_cond_signal(ABT_cond cond)
Signal a condition.