Lines Matching refs:my_sem
150 semaphore(int start_cnt_ = 0) { my_sem = dispatch_semaphore_create(start_cnt_); }
152 ~semaphore() { dispatch_release(my_sem); } in ~semaphore()
155 std::intptr_t ret = dispatch_semaphore_wait(my_sem, DISPATCH_TIME_FOREVER); in P()
159 void V() { dispatch_semaphore_signal(my_sem); } in V()
161 dispatch_semaphore_t my_sem;
200 binary_semaphore() { my_sem = CreateEventEx( nullptr, nullptr, 0, EVENT_ALL_ACCESS ); } in binary_semaphore()
202 ~binary_semaphore() { CloseHandle( my_sem ); } in ~binary_semaphore()
204 void P() { WaitForSingleObjectEx( my_sem, INFINITE, FALSE ); } in P()
206 void V() { SetEvent( my_sem ); } in V()
208 HANDLE my_sem;
229 srwl_or_handle my_sem;
243 binary_semaphore() { my_sem = 1; } in binary_semaphore()
249 if( !my_sem.compare_exchange_strong( s, 1 ) ) { in P()
251 s = my_sem.exchange( 2 ); in P()
253 futex_wait( &my_sem, 2 ); in P()
254 s = my_sem.exchange( 2 ); in P()
260 __TBB_ASSERT( my_sem.load(std::memory_order_relaxed)>=1, "multiple V()'s in a row?" ); in V()
261 if( my_sem.exchange( 0 )==2 ) in V()
262 futex_wakeup_one( &my_sem ); in V()
265 std::atomic<int> my_sem; // 0 - open; 1 - closed, no waits; 2 - closed, possible waits
274 int ret = sem_init( &my_sem, /*shared among threads*/ 0, 0 ); in binary_semaphore()
279 int ret = sem_destroy( &my_sem ); in ~binary_semaphore()
284 while( sem_wait( &my_sem )!=0 ) in P()
288 void V() { sem_post( &my_sem ); } in V()
290 sem_t my_sem;