Changeset View
Changeset View
Standalone View
Standalone View
libcxx/include/__threading_support
Show First 20 Lines • Show All 189 Lines • ▼ Show 20 Lines | |||||
_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS | _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS | ||||
int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); | int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); | ||||
_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS | _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS | ||||
int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | ||||
__libcpp_timespec_t *__ts); | __libcpp_timespec_t *__ts); | ||||
#ifdef _LIBCPP_CONDVAR_HAS_MONOTONIC_TIMEDWAIT | |||||
_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS | |||||
int __libcpp_condvar_monotonic_timedwait(__libcpp_condvar_t *__cv, | |||||
__libcpp_mutex_t *__m, | |||||
__libcpp_timespec_t *__ts); | |||||
#endif | |||||
_LIBCPP_THREAD_ABI_VISIBILITY | _LIBCPP_THREAD_ABI_VISIBILITY | ||||
int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); | int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); | ||||
// Execute once | // Execute once | ||||
_LIBCPP_THREAD_ABI_VISIBILITY | _LIBCPP_THREAD_ABI_VISIBILITY | ||||
int __libcpp_execute_once(__libcpp_exec_once_flag *flag, | int __libcpp_execute_once(__libcpp_exec_once_flag *flag, | ||||
void (*init_routine)()); | void (*init_routine)()); | ||||
▲ Show 20 Lines • Show All 142 Lines • ▼ Show 20 Lines | |||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | ||||
__libcpp_timespec_t *__ts) | __libcpp_timespec_t *__ts) | ||||
{ | { | ||||
return pthread_cond_timedwait(__cv, __m, __ts); | return pthread_cond_timedwait(__cv, __m, __ts); | ||||
} | } | ||||
#ifdef _LIBCPP_CONDVAR_HAS_MONOTONIC_TIMEDWAIT | |||||
_LIBCPP_HIDE_FROM_ABI inline | |||||
int __libcpp_condvar_monotonic_timedwait(__libcpp_condvar_t *__cv, | |||||
__libcpp_mutex_t *__m, | |||||
__libcpp_timespec_t *__ts) | |||||
{ | |||||
return pthread_cond_clockwait(__cv, __m, CLOCK_MONOTONIC, __ts); | |||||
} | |||||
#endif | |||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) | int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) | ||||
{ | { | ||||
return pthread_cond_destroy(__cv); | return pthread_cond_destroy(__cv); | ||||
} | } | ||||
// Execute once | // Execute once | ||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
▲ Show 20 Lines • Show All 165 Lines • ▼ Show 20 Lines | |||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) | int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) | ||||
{ | { | ||||
return cnd_wait(__cv, __m) == thrd_success ? 0 : EINVAL; | return cnd_wait(__cv, __m) == thrd_success ? 0 : EINVAL; | ||||
} | } | ||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | ||||
timespec *__ts) | __libcpp_timespec_t *__ts) | ||||
{ | { | ||||
int __ec = cnd_timedwait(__cv, __m, __ts); | int __ec = cnd_timedwait(__cv, __m, __ts); | ||||
return __ec == thrd_timedout ? ETIMEDOUT : __ec; | return __ec == thrd_timedout ? ETIMEDOUT : __ec; | ||||
} | } | ||||
_LIBCPP_HIDE_FROM_ABI inline | _LIBCPP_HIDE_FROM_ABI inline | ||||
int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) | int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 187 Lines • Show Last 20 Lines |