std::scoped_lock::scoped_lock

std::scoped_lock::scoped_lock

explicit scoped_lock( MutexTypes&... m );
(1) (since C++17)
scoped_lock( MutexTypes&... m, std::adopt_lock_t t );
(2) (since C++17)
scoped_lock( const scoped_lock& ) = delete;
(3) (since C++17)

Acquires ownership of the given mutexes m.

1) If sizeof...(MutexTypes) == 0, does nothing. Otherwise, If sizeof...(MutexTypes) == 1, effectively calls m.lock(). Otherwise, effectively calls std::lock(m...). The behavior is undefined if one of MutexTypes is not a recursive mutex and the current thread already owns the corresponding argument in m....
2) Acquires ownership of the mutexes m... without attempting to lock any of them. The behavior is undefined unless the current thread owns all of the mutexes in m....
3) Copy constructor is deleted.

The behavior is undefined if m is destroyed before the scoped_lock object is.

Parameters

m - mutexes to acquire ownership of
t - tag parameter used to select non-locking version of the constructor

Exceptions

1) Throws any exceptions thrown by m.lock()
2) Throws nothing

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/thread/scoped_lock/scoped_lock

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部