セマフォ API

概要

xmc::Semaphore は、スレッド間またはコア間で共有リソースへのアクセスを同期するためのバイナリセマフォです。

コンストラクタ直後は利用可能状態 (トークン保持) で初期化されます。

Semaphore クラス

xmc::Semaphore::Semaphore

xmc::Semaphore::Semaphore();

セマフォを生成します。

内部リソース確保に失敗した場合、セマフォは未初期化状態になります。

xmc::Semaphore::~Semaphore

xmc::Semaphore::~Semaphore();

セマフォを破棄し、内部リソースを解放します。

xmc::Semaphore::isInitialized

bool xmc::Semaphore::isInitialized() const;

セマフォが初期化済みかどうかを返します。

初期化成功時は true、失敗時は false です。

xmc::Semaphore::take

void xmc::Semaphore::take();

セマフォを取得します。

利用可能になるまでブロッキングします。 未初期化状態では何も行いません。

xmc::Semaphore::tryTake

bool xmc::Semaphore::tryTake();

非ブロッキングでセマフォ取得を試みます。

取得に成功した場合は true、取得できなかった場合は false を返します。 未初期化状態でも false を返します。

xmc::Semaphore::give

void xmc::Semaphore::give();

セマフォを解放します。

take() または tryTake() で取得したセマフォを他の処理へ譲渡できる状態に戻します。 未初期化状態では何も行いません。