LLVM OpenMP 20.0.0git
Public Types | Public Member Functions | Protected Attributes | List of all members
kmp_flag< FlagType > Class Template Reference

Base class for all flags. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/openmp/runtime/src/kmp_wait_release.h"

Inheritance diagram for kmp_flag< FlagType >:
Inheritance graph
[legend]

Public Types

typedef flag_traits< FlagType > traits_type
 

Public Member Functions

 kmp_flag ()
 
 kmp_flag (int nwaiters)
 
 kmp_flag (std::atomic< bool > *sloc)
 
flag_type get_type ()
 
kmp_info_tget_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

flag_properties t
 "Type" of the flag in loc
 
kmp_info_twaiting_threads [1] = {nullptr}
 
kmp_uint32 num_waiting_threads
 Num threads sleeping on this thread.
 
std::atomic< bool > * sleepLoc
 

Detailed Description

template<flag_type FlagType>
class kmp_flag< FlagType >

Base class for all flags.

Definition at line 104 of file kmp_wait_release.h.

Member Typedef Documentation

◆ traits_type

template<flag_type FlagType>
typedef flag_traits<FlagType> kmp_flag< FlagType >::traits_type

Definition at line 113 of file kmp_wait_release.h.

Constructor & Destructor Documentation

◆ kmp_flag() [1/3]

template<flag_type FlagType>
kmp_flag< FlagType >::kmp_flag ( )
inline

Definition at line 114 of file kmp_wait_release.h.

◆ kmp_flag() [2/3]

template<flag_type FlagType>
kmp_flag< FlagType >::kmp_flag ( int  nwaiters)
inline

Definition at line 115 of file kmp_wait_release.h.

◆ kmp_flag() [3/3]

template<flag_type FlagType>
kmp_flag< FlagType >::kmp_flag ( std::atomic< bool > *  sloc)
inline

Definition at line 117 of file kmp_wait_release.h.

Member Function Documentation

◆ get_bt()

template<flag_type FlagType>
enum barrier_type kmp_flag< FlagType >::get_bt ( )
inline

Definition at line 136 of file kmp_wait_release.h.

References bs_last_barrier.

◆ get_num_waiters()

template<flag_type FlagType>
kmp_uint32 kmp_flag< FlagType >::get_num_waiters ( )
inline
Returns
num_waiting_threads

Definition at line 129 of file kmp_wait_release.h.

References kmp_flag< FlagType >::num_waiting_threads.

◆ get_type()

template<flag_type FlagType>
flag_type kmp_flag< FlagType >::get_type ( )
inline
Returns
the flag_type

Definition at line 120 of file kmp_wait_release.h.

References kmp_flag< FlagType >::t, and flag_properties::type.

◆ get_waiter()

template<flag_type FlagType>
kmp_info_t * kmp_flag< FlagType >::get_waiter ( kmp_uint32  i)
inline

param i in index into waiting_threads

Returns
the thread that is waiting at index i

Definition at line 124 of file kmp_wait_release.h.

References i, KMP_DEBUG_ASSERT, kmp_flag< FlagType >::num_waiting_threads, and kmp_flag< FlagType >::waiting_threads.

◆ set_waiter()

template<flag_type FlagType>
void kmp_flag< FlagType >::set_waiter ( kmp_info_t thr)
inline
Parameters
thrin the thread which is now waiting Insert a waiting thread at index 0.

Definition at line 132 of file kmp_wait_release.h.

References kmp_flag< FlagType >::num_waiting_threads, and kmp_flag< FlagType >::waiting_threads.

Referenced by __kmp_hyper_barrier_gather().

Member Data Documentation

◆ num_waiting_threads

template<flag_type FlagType>
kmp_uint32 kmp_flag< FlagType >::num_waiting_threads
protected

Num threads sleeping on this thread.

Definition at line 109 of file kmp_wait_release.h.

Referenced by kmp_flag< FlagType >::get_num_waiters(), kmp_flag< FlagType >::get_waiter(), and kmp_flag< FlagType >::set_waiter().

◆ sleepLoc

template<flag_type FlagType>
std::atomic<bool>* kmp_flag< FlagType >::sleepLoc
protected

◆ t

template<flag_type FlagType>
flag_properties kmp_flag< FlagType >::t
protected

"Type" of the flag in loc

Threads sleeping on this thread.

Definition at line 106 of file kmp_wait_release.h.

Referenced by kmp_flag< FlagType >::get_type().

◆ waiting_threads

template<flag_type FlagType>
kmp_info_t* kmp_flag< FlagType >::waiting_threads[1] = {nullptr}
protected

The documentation for this class was generated from the following file: