# C++ concepts: BasicLockable

From cppreference.com
< cpp‎ | concept

The `BasicLockable` concept describes 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. 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 "http://en.cppreference.com/mwiki/index.php?title=cpp/concept/BasicLockable&oldid=65580"