6.11.1 Mutex Objects
mutex objects have following methods:
Check whether the mutex is locked.
``Atomic'' test-and-set, grab the lock if it is not set,
and return true, otherwise, return false.
- lock(function, argument)
function(argument), unless the mutex is locked.
In the case it is locked, place the function and argument on the queue.
See unlock for explanation of when
function(argument) is executed in that case.
See About this document... for information on suggesting changes.
Unlock the mutex if queue is empty, otherwise execute the first element
in the queue.