D.5. Заголовок <mutex>
В заголовке <mutex> объявлены средства, обеспечивающие взаимное исключение: типы мьютексов и блокировок, различные функции и механизм, гарантирующий, что некая операция выполнена ровно один раз.
Содержимое заголовка
namespace std {
class mutex;
class recursive_mutex;
class timed_mutex;
class recursive_timed_mutex;
struct adopt_lock_t;
struct defer_lock_t;
struct try_to_lock_t;
constexpr adopt_lock_t adopt_lock{};
constexpr defer_lock_t defer_lock{};
constexpr try_to_lock_t try_to_lock{};
template<typename LockableType>
class lock_guard;
template<typename LockableType>
class unique_lock;
template<typename LockableType1, typename... LockableType2>
void lock(LockableType1& m1, LockableType2& m2...);
template<typename LockableType1, typename... LockableType2>
int try_lock(LockableType1& m1, LockableType2& m2...);
struct once_flag;
template<typename Callable, typename... Args>
void call_once(once_flag& flag, Callable func, Args args...);
}