16 #ifndef INCLUDE_NN_NLIB_THREADING_CONDVAR_H_ 17 #define INCLUDE_NN_NLIB_THREADING_CONDVAR_H_ 28 #ifndef NLIB_CONDVAR_USE_FALLBACK 48 #if defined(__cpp_constexpr) && defined(NLIB_CXX11_DEFAULTED_AND_DELETED_FUNCTIONS) 75 template<
class lock_type>
83 template<
class lock_type>
87 return nlib_cond_wait_for(&cond_, detail::GetRawMutex(lock), timeout.ToTimeValue().tick);
89 template<
class lock_type>
97 #if defined(__cpp_constexpr) && defined(NLIB_CXX11_DEFAULTED_AND_DELETED_FUNCTIONS) 109 NLIB_REQUIRES(lock) {
110 return nlib_cond_wait_for(&cond_, detail::GetRawMutex(lock), timeout.ToTimeValue().tick);
116 NLIB_REQUIRES(lock) {
126 #endif // INCLUDE_NN_NLIB_THREADING_CONDVAR_H_ void NotifyAll() noexcept
ウェイトしているスレッド全てにシグナルします。
void Notify() noexcept
ウェイトしているスレッドの1つ以上にシグナルします。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
ミューテックス, 再入可能ミューテックス, 再入とタイムアウトが可能なミューテックスを実装しています。 ...
errno_t WaitFor(lock_type &lock, const nlib_ns::TimeSpan &timeout) noexcept NLIB_REQUIRES(lock)
期間を指定したタイムアウトつきのウェイトをします。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
errno_t Wait(lock_type &lock) noexcept NLIB_REQUIRES(lock)
ウェイトします。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
errno_t WaitUntil(lock_type &lock, const nlib_ns::DateTime &datetime) noexcept NLIB_REQUIRES(lock)
日時を指定したタイムアウトつきのウェイトをします。