セマフォ 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() で取得したセマフォを他の処理へ譲渡できる状態に戻します。 未初期化状態では何も行いません。