3 #ifndef INCLUDE_NN_NLIB_THREADING_SEMAPHORE_H_
4 #define INCLUDE_NN_NLIB_THREADING_SEMAPHORE_H_
34 NativeHandle GetNativeHandle()
NLIB_NOEXCEPT {
return &m_Obj; }
46 class ScopedSemaphore {
50 m_Semaphore.Acquire();
53 m_Semaphore.Release(NULL);
57 Semaphore& m_Semaphore;
64 #endif // INCLUDE_NN_NLIB_THREADING_SEMAPHORE_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
errno_t TryAcquire(const nlib_ns::TimeSpan &timeout) noexcept
セマフォをタイムアウトつきで1つロックします。
errno_t Init(int initialCount) noexcept
セマフォを初期化します。
errno_t TryAcquire() noexcept
セマフォのロックを試みます。
errno_t Release(int *previousCount) noexcept
セマフォを1つリリースします。
errno_t Release(int releaseCount, int *previousCount) noexcept
セマフォを複数個リリースします。 アトミックには実行されないかもしれません。
errno_t Acquire() noexcept
セマフォを1つロックします。