LLVM OpenMP 22.0.0git
|
Base class for wait/release atomic flag. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/openmp/runtime/src/kmp_wait_release.h"
Public Types | |
typedef flag_traits< FlagType > | traits_type |
typedef PtrType | flag_t |
Public Types inherited from kmp_flag< FlagType > | |
typedef flag_traits< FlagType > | traits_type |
Public Member Functions | |
kmp_flag_atomic (std::atomic< PtrType > *p) | |
kmp_flag_atomic (std::atomic< PtrType > *p, kmp_info_t *thr) | |
kmp_flag_atomic (std::atomic< PtrType > *p, PtrType c) | |
kmp_flag_atomic (std::atomic< PtrType > *p, PtrType c, std::atomic< bool > *sloc) | |
std::atomic< PtrType > * | get () |
void * | get_void_p () |
void | set (std::atomic< PtrType > *new_loc) |
PtrType | load () |
void | store (PtrType val) |
bool | done_check () |
bool | done_check_val (PtrType old_loc) |
bool | notdone_check () |
void | internal_release () |
PtrType | set_sleeping () |
void | unset_sleeping () |
bool | is_sleeping_val (PtrType old_loc) |
bool | is_sleeping () |
Test whether there are threads sleeping on the flag. | |
bool | is_any_sleeping () |
kmp_uint8 * | get_stolen () |
Public Member Functions inherited from kmp_flag< FlagType > | |
kmp_flag () | |
kmp_flag (int nwaiters) | |
kmp_flag (std::atomic< bool > *sloc) | |
flag_type | get_type () |
kmp_info_t * | get_waiter (kmp_uint32 i) |
param i in index into waiting_threads | |
kmp_uint32 | get_num_waiters () |
void | set_waiter (kmp_info_t *thr) |
enum barrier_type | get_bt () |
Protected Attributes | |
std::atomic< PtrType > * | loc |
Pointer to flag location to wait on. | |
PtrType | checker = (PtrType)0 |
Flag==checker means it has been released. | |
Protected Attributes inherited from kmp_flag< FlagType > | |
flag_properties | t |
"Type" of the flag in loc | |
kmp_info_t * | waiting_threads [1] = {nullptr} |
kmp_uint32 | num_waiting_threads |
Num threads sleeping on this thread. | |
std::atomic< bool > * | sleepLoc |
Base class for wait/release atomic flag.
Definition at line 235 of file kmp_wait_release.h.
typedef PtrType kmp_flag_atomic< PtrType, FlagType, Sleepable >::flag_t |
Definition at line 241 of file kmp_wait_release.h.
typedef flag_traits<FlagType> kmp_flag_atomic< PtrType, FlagType, Sleepable >::traits_type |
Definition at line 240 of file kmp_wait_release.h.
|
inline |
Definition at line 242 of file kmp_wait_release.h.
References kmp_flag< FlagType >::kmp_flag(), loc, and p.
|
inline |
Definition at line 243 of file kmp_wait_release.h.
References kmp_flag< FlagType >::kmp_flag(), loc, and p.
|
inline |
Definition at line 247 of file kmp_wait_release.h.
References checker, kmp_flag< FlagType >::kmp_flag(), loc, and p.
|
inline |
Definition at line 249 of file kmp_wait_release.h.
References checker, kmp_flag< FlagType >::kmp_flag(), loc, and p.
|
inline |
Definition at line 262 of file kmp_wait_release.h.
References checker, KMP_BARRIER_SLEEP_STATE, and load().
|
inline |
old_loc | in old value of flag |
Definition at line 270 of file kmp_wait_release.h.
References checker.
|
inline |
Definition at line 252 of file kmp_wait_release.h.
References loc.
Referenced by internal_release(), set_sleeping(), and unset_sleeping().
|
inline |
Definition at line 318 of file kmp_wait_release.h.
|
inline |
Definition at line 254 of file kmp_wait_release.h.
|
inline |
Definition at line 279 of file kmp_wait_release.h.
References get(), and KMP_ATOMIC_ADD.
|
inline |
Definition at line 313 of file kmp_wait_release.h.
References is_sleeping_val(), and load().
|
inline |
Test whether there are threads sleeping on the flag.
Definition at line 308 of file kmp_wait_release.h.
References is_sleeping_val(), and load().
|
inline |
old_loc | in old value of flag Test whether there are threads sleeping on flag's old value in old_loc. |
Definition at line 302 of file kmp_wait_release.h.
References KMP_BARRIER_SLEEP_STATE.
Referenced by is_any_sleeping(), and is_sleeping().
|
inline |
Definition at line 258 of file kmp_wait_release.h.
References loc.
Referenced by done_check(), is_any_sleeping(), is_sleeping(), and notdone_check().
|
inline |
Definition at line 276 of file kmp_wait_release.h.
References load().
|
inline |
new_loc | in set loc to point at new_loc |
Definition at line 256 of file kmp_wait_release.h.
References loc.
|
inline |
Definition at line 283 of file kmp_wait_release.h.
References get(), KMP_ATOMIC_OR, and KMP_BARRIER_SLEEP_STATE.
|
inline |
val | the new flag value to be stored |
Definition at line 260 of file kmp_wait_release.h.
|
inline |
Definition at line 293 of file kmp_wait_release.h.
References get(), KMP_ATOMIC_AND, and KMP_BARRIER_SLEEP_STATE.
|
protected |
Flag==checker means it has been released.
Definition at line 238 of file kmp_wait_release.h.
Referenced by done_check(), done_check_val(), kmp_flag_atomic(), and kmp_flag_atomic().
|
protected |
Pointer to flag location to wait on.
Definition at line 237 of file kmp_wait_release.h.
Referenced by get(), get_void_p(), kmp_flag_atomic(), kmp_flag_atomic(), kmp_flag_atomic(), kmp_flag_atomic(), load(), set(), and store().