@node VSemaphore, VObjectClass, VLayout, Top
@comment  node-name,  next,  previous,  up
@chapter VSemaphore

@code{VSemaphore}クラスは，@code{VObject}クラス群で使われるセマフォである。ただし，同一スレッドから重複してロックをかけても，対応するunlockが呼ばれている限りデッドロックしないという特徴を持つ。
lock, unlockというメソッドを持つ。

@deftypemethod VSemaphore void lock ()
セマフォをロックする。ただし，現在そのセマフォにロックをかけているスレッドからコールされた場合は，ロックはしない。
@end deftypemethod

@deftypemethod VSemaphore void unlock ()
セマフォをアンロックする。ただし，同一スレッドから重複してlock()が呼ばれていた場合は，その重複回数だけunlockが呼ばれるまで，ロックを保持したままにする。
@end deftypemethod
