16 #ifndef INCLUDE_NN_NLIB_THREADING_SEMAPHORE_H_ 17 #define INCLUDE_NN_NLIB_THREADING_SEMAPHORE_H_ 47 NativeHandle GetNativeHandle()
NLIB_NOEXCEPT {
return &obj_; }
60 class ScopedSemaphore {
67 semaphore_.Release(
nullptr);
78 #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
セマフォのロックを試みます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
errno_t Acquire() noexcept
セマフォを1つロックします。