17 #ifndef __TBB_concurrent_monitor_H    18 #define __TBB_concurrent_monitor_H   115         tbb::aligned_space<binary_semaphore> 
sema;
   131     void prepare_wait( thread_context& thr, uintptr_t ctx = 0 );
   153     template<
typename WaitUntil, 
typename Context>
   154     void wait( WaitUntil until, Context on );
   187 template<
typename WaitUntil, 
typename Context>
   216                 if( predicate( thr->
context ) ) {
 circular_doubly_linked_list_with_sentinel waitset_t
 
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
 
__TBB_atomic unsigned epoch
 
const node_t * end() const
 
tbb::aligned_space< binary_semaphore > sema
 
~circular_doubly_linked_list_with_sentinel()
 
circular_doubly_linked_list_with_sentinel::node_t waitset_node_t
 
binary_semaphore & semaphore()
 
void add(node_t *n)
add to the back of the list
 
A lock that occupies a single byte.
 
Circular doubly-linked list with sentinel.
 
void notify_one_relaxed()
Notify one thread about the event. Relaxed version.
 
void prepare_wait(thread_context &thr, uintptr_t ctx=0)
prepare wait by inserting 'thr' into the wait queue
 
void __TBB_store_relaxed(volatile T &location, V value)
 
~concurrent_monitor()
dtor
 
void notify_one()
Notify one thread about the event.
 
void flush_to(circular_doubly_linked_list_with_sentinel &lst)
move all elements to 'lst' and initialize the 'this' list
 
__TBB_atomic unsigned epoch
 
circular_doubly_linked_list_with_sentinel()
 
void notify_relaxed(const P &predicate)
Notify waiting threads of the event that satisfies the given predicate; Relaxed version.
 
void abort_all_relaxed()
Abort any sleeping threads at the time of the call; Relaxed version.
 
thread_context * to_thread_context(waitset_node_t *n)
 
void notify_all()
Notify all waiting threads of the event.
 
void wait(WaitUntil until, Context on)
Wait for a condition to be satisfied with waiting-on context.
 
void notify_all_relaxed()
Notify all waiting threads of the event; Relaxed version.
 
void notify(const P &predicate)
Notify waiting threads of the event that satisfies the given predicate.
 
__TBB_atomic size_t count
 
tbb::atomic< bool > in_waitset
 
Represents acquisition of a mutex.
 
__TBB_NOINLINE(void init())
The method for lazy initialization of the thread_context's semaphore.
 
binary_semaphore for concurrent monitor
 
Base class for types that should not be copied or assigned.
 
void cancel_wait(thread_context &thr)
Cancel the wait. Removes the thread from the wait queue if not removed yet.
 
void atomic_fence()
Sequentially consistent full memory fence.
 
void remove(node_t &n)
remove node 'n'
 
void abort_all()
Abort any sleeping threads at the time of the call.
 
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
 
T __TBB_load_relaxed(const volatile T &location)
 
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
 
bool commit_wait(thread_context &thr)
Commit wait if event count has not changed; otherwise, cancel wait.