62 typedef _Mutex mutex_type;
64 unique_lock() noexcept
65 : _M_device(0), _M_owns(
false)
68 explicit unique_lock(mutex_type& __m)
89 template<
typename _Clock,
typename _Duration>
90 unique_lock(mutex_type& __m,
93 _M_owns(_M_device->try_lock_until(__atime))
96 template<
typename _Rep,
typename _Period>
97 unique_lock(mutex_type& __m,
100 _M_owns(_M_device->try_lock_for(__rtime))
109 unique_lock(
const unique_lock&) =
delete;
110 unique_lock& operator=(
const unique_lock&) =
delete;
112 unique_lock(unique_lock&& __u) noexcept
113 : _M_device(__u._M_device), _M_owns(__u._M_owns)
119 unique_lock& operator=(unique_lock&& __u)
noexcept
136 __throw_system_error(
int(errc::operation_not_permitted));
138 __throw_system_error(
int(errc::resource_deadlock_would_occur));
151 __throw_system_error(
int(errc::operation_not_permitted));
153 __throw_system_error(
int(errc::resource_deadlock_would_occur));
156 _M_owns = _M_device->try_lock();
161 template<
typename _Clock,
typename _Duration>
167 __throw_system_error(
int(errc::operation_not_permitted));
169 __throw_system_error(
int(errc::resource_deadlock_would_occur));
172 _M_owns = _M_device->try_lock_until(__atime);
177 template<
typename _Rep,
typename _Period>
183 __throw_system_error(
int(errc::operation_not_permitted));
185 __throw_system_error(
int(errc::resource_deadlock_would_occur));
188 _M_owns = _M_device->try_lock_for(__rtime);
197 __throw_system_error(
int(errc::operation_not_permitted));
206 swap(unique_lock& __u)
noexcept
215 mutex_type* __ret = _M_device;
223 owns_lock()
const noexcept
226 explicit operator bool()
const noexcept
227 {
return owns_lock(); }
231 mutex()
const noexcept
232 {
return _M_device; }
235 mutex_type* _M_device;