22 void concurrent_monitor::thread_context::init() {
23 new (
sema.begin()) binary_semaphore;
60 thr.in_waitset =
false;
61 thr.skipped_wakeup =
false;
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
binary_semaphore & semaphore()
void add(node_t *n)
add to the back of the list
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 flush_to(circular_doubly_linked_list_with_sentinel &lst)
move all elements to 'lst' and initialize the 'this' list
__TBB_atomic unsigned epoch
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_relaxed()
Notify all waiting threads of the event; Relaxed version.
tbb::atomic< bool > in_waitset
Represents acquisition of a mutex.
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)