D 2.0
About Japanese Translation

Last update Sun Dec 19 23:27:22 2010

core.sync.semaphore

semaphore モジュールは同期処理のためのセマフォを提供します。

License:
Boost License 1.0.

Authors:
Sean Kelly

Source:
core/sync/semaphore.d
class Semaphore;
このクラスは Edsger Dijkstra によって考案された汎用の計数セマフォを実装しています。ただし、"signal" は "notify" によって置き換えられ、 通知が送られた瞬間には制御が待ちスレッド側に移らないという意図を明確にしています。

this(uint count = 0);
初期カウント count でセマフォオブジェクトを初期化します。

Parameters:
uint count セマフォの初期カウント

Throws:
エラー時に SyncException

void wait();
カウントが1以上になるのを待機します。1以上になると、 アトミックにカウントを1減らし、呼び出し側に戻ります。

Throws:
エラー時に SyncException

bool wait(Duration val);
現在のスレッドを、カウントが1以上になるか、 指定の時間が経過するまで待機させます。 時間内にカウントが1以上になると、アトミックにカウントを1減らし、 true を返します。そうでなければ、false を返します。

Parameters:
period 待つ時間。

In:
val には非負の値を指定すること

Throws:
エラー時に SyncException

Returns:
タイムアウト前に待機が解除されれば true、そうでなければ false

bool wait(long period);
現在のスレッドを、カウントが1以上になるか、 指定の時間 period が経過するまで待機させます。 時間内にカウントが1以上になると、アトミックにカウントを1減らし、 true を返します。そうでなければ、false を返します。

Parameters:
long period 待つ時間。100ナノ秒単位で指定します。値が大きすぎる場合、 実行中のプラットフォームで対応できる最大の時間に切り詰められます。

In:
period には非負の値を指定すること

Throws:
エラー時に SyncException

Returns:
タイムアウト前に待機が解除されれば true、そうでなければ false

void notify();
アトミックに、カウントを1増やします。 これによって、待っているスレッドがいればその1つに通知が送られます。

Throws:
SyncException on error.

bool tryWait();
現在のカウントがゼロならばすぐreturnします。 そうでなければ、カウントを1減らしてreturn trueします。

Throws:
エラー時に SyncException

Returns:
カウントが1以上ならば true、そうでなければ false