Skip to main content

C++ named requirements: BasicLockable (since C++11)

The Lockable requirements extends the BasicLockable requirements to include attempted locking.

Requirements

For type L to be Lockable, it must meet the above condition as well as the following:

ExpressionEffectsReturn value
m.try_lock()Attempts to acquire the lock for the current execution agent (thread, process, task) without blocking. If an exception is thrown, no lock is obtained.true if the lock was acquired, false otherwise

Notes

The try_lock member functions obtains a non-shared lock on m on succcess.

C++ named requirements: BasicLockable (since C++11)

The Lockable requirements extends the BasicLockable requirements to include attempted locking.

Requirements

For type L to be Lockable, it must meet the above condition as well as the following:

ExpressionEffectsReturn value
m.try_lock()Attempts to acquire the lock for the current execution agent (thread, process, task) without blocking. If an exception is thrown, no lock is obtained.true if the lock was acquired, false otherwise

Notes

The try_lock member functions obtains a non-shared lock on m on succcess.