This class describes an exception thrown when a lock is acquired improperly.
class improper_lock : public std::exception;
Overloaded. Constructs an improper_lock exception.
Typically, this exception is thrown when an attempt is made to acquire a non-reentrant lock recursively on the same context.