60 typedef _Mutex mutex_type;
62 unique_lock() noexcept
63 : _M_device(0), _M_owns(
false)
66 explicit unique_lock(mutex_type& __m)
87 template<
typename _Clock,
typename _Duration>
88 unique_lock(mutex_type& __m,
91 _M_owns(_M_device->try_lock_until(__atime))
94 template<
typename _Rep,
typename _Period>
95 unique_lock(mutex_type& __m,
98 _M_owns(_M_device->try_lock_for(__rtime))
107 unique_lock(
const unique_lock&) =
delete;
108 unique_lock& operator=(
const unique_lock&) =
delete;
110 unique_lock(unique_lock&& __u) noexcept
111 : _M_device(__u._M_device), _M_owns(__u._M_owns)
117 unique_lock& operator=(unique_lock&& __u)
noexcept
134 __throw_system_error(
int(errc::operation_not_permitted));
136 __throw_system_error(
int(errc::resource_deadlock_would_occur));
148 __throw_system_error(
int(errc::operation_not_permitted));
150 __throw_system_error(
int(errc::resource_deadlock_would_occur));
153 _M_owns = _M_device->try_lock();
158 template<
typename _Clock,
typename _Duration>
163 __throw_system_error(
int(errc::operation_not_permitted));
165 __throw_system_error(
int(errc::resource_deadlock_would_occur));
168 _M_owns = _M_device->try_lock_until(__atime);
173 template<
typename _Rep,
typename _Period>
178 __throw_system_error(
int(errc::operation_not_permitted));
180 __throw_system_error(
int(errc::resource_deadlock_would_occur));
183 _M_owns = _M_device->try_lock_for(__rtime);
192 __throw_system_error(
int(errc::operation_not_permitted));
201 swap(unique_lock& __u)
noexcept
210 mutex_type* __ret = _M_device;
217 owns_lock()
const noexcept
220 explicit operator bool()
const noexcept
221 {
return owns_lock(); }
224 mutex()
const noexcept
225 {
return _M_device; }
228 mutex_type* _M_device;