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