スピンロック API ################################################################################ 概要 ================================================================================ `xmc::SpinLock` は、短時間のクリティカルセクションを保護するための排他制御プリミティブです。 主に、コア間または割り込みコンテキストをまたぐ共有データの保護に使用します。 SpinLock クラス ================================================================================ xmc::SpinLock::SpinLock -------------------------------------------------------------------------------- .. code-block:: cpp xmc::SpinLock::SpinLock(); スピンロックを生成します。 内部リソースの確保に失敗した場合、ロックは未初期化状態になります。 xmc::SpinLock::~SpinLock -------------------------------------------------------------------------------- .. code-block:: cpp xmc::SpinLock::~SpinLock(); スピンロックを破棄し、内部リソースを解放します。 xmc::SpinLock::get -------------------------------------------------------------------------------- .. code-block:: cpp void xmc::SpinLock::get(); ロックを取得します。 他の実行コンテキストが保持中の場合は、取得可能になるまで待機します。 未初期化状態では何も行いません。 xmc::SpinLock::release -------------------------------------------------------------------------------- .. code-block:: cpp void xmc::SpinLock::release(); 取得済みロックを解放します。 `get()` で保護したクリティカルセクションの終端で呼び出します。 未初期化状態では何も行いません。