# C++ named requirements: BasicLockable

From cppreference.com
< cpp‎ | named req

The BasicLockable requirements describe the minimal characteristics of types that provide exclusive blocking semantics for execution agents (i.e. threads).

### Requirements

For type `L` to be BasicLockable, the following conditions have to be satisfied for an object `m` of type `L`:

Expression | Requires | Effects
--- | --- | ---
m.lock() |  | Blocks until a lock can be obtained for the current execution agent (thread, process, task). If an exception is thrown, no lock is obtained.
m.unlock() | The current execution agent should hold the lock `m`. | Releases the lock held by the execution agent. Throws no exceptions.

### See also

- Thread support library
- Mutex
- Lockable
- TimedLockable

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/BasicLockable&oldid=104137"