void cv_sleep(lock_t* lock) { acquire(&ptable.lock); fetchAndAdd(&lock->turn, 1); // Release lock sleep(proc, &ptable.lock); release(&ptable.lock); }
inline T Atomic<T>::operator++ ( int val ) { return fetchAndAdd(); }