Acquire the Lock
Execute comp protected by the lock.
Execute comp protected by the lock.
Get a new Condition object associated with this.
Get a new Condition object associated with this.
Make one attempt to acquire the lock
Make one attempt to acquire the lock; if successful, execute comp and then release the lock; if unsuccessful execute elseComp.
Make one attempt to acquire the lock; if successful, execute comp and then release the lock; if unsuccessful execute elseComp.
Release the Lock
A lock based upon the test-and-set operation Based on Herlihy & Shavit, Chapter 7.