[thread.req.lockable.basic] (original) (raw)
32 Concurrency support library [thread]
32.2 Requirements [thread.req]
32.2.5 Requirements for Cpp17Lockable types [thread.req.lockable]
32.2.5.2 Cpp17BasicLockable requirements [thread.req.lockable.basic]
A type L meets the Cpp17BasicLockable requirements if the following expressions are well-formed and have the specified semantics (m denotes a value of type L).
Effects: Blocks until a lock can be acquired for the current execution agent.
If an exception is thrown then a lock shall not have been acquired for the current execution agent.
Preconditions: The current execution agent holds a non-shared lock on m.
Effects: Releases a non-shared lock on m held by the current execution agent.