std::recursive_mutex
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <mutex>
   | 
||
|   class recursive_mutex;  | 
(since C++11) | |
The class mutex is a synchronization primitive, offering exclusive, recursive ownership semantics. The class is non-copyable.
| This section is incomplete | 
Contents | 
[edit] Member types
| Member type | Definition | 
| native_handle_type | implementation-defined | 
[edit] Member functions
|   constructs the mutex  (public member function)  | |
 Locking | |
|    locks the mutex, blocks if the mutex is not available  (public member function)  | |
|    tries to lock the mutex, returns if the mutex is not available  (public member function)  | |
|    unlocks the mutex  (public member function)  | |
 Native handle | |
|    returns the underlying imlementation-defined thread handle  (public member function)  | |