##
6.12.1 mutex オブジェクト

`mutex` は以下のメソッドを持ちます:

`test`( | )

  mutexがロックされたか調べます。

`testandset`( | )

  ``アトミック'' Test-and-Set命令です。 セットされていないならばロックを得て`True`を返し、 そうでないならば`False`を返します。

`lock`( | function, argument)

  mutexがロックされていなければ、 `function(argument)`を実行します。 この場合にはそのmutexがロックされて、関数と引数をキューに置きます。 `function(argument)` が実行されたときの説明は、 `unlock`を見てください。

`unlock`( | )

  もしキューが空ならば、mutexを解除します。 一方、空でないならば、キューの最初の要素を実行します。