CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 25 Jul 2025 23:53:16 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/mutex/recursive_mutex/
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 25 Jul 2025 23:53:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"7141-f6BaPznKHvcaS7s9P8OIM9qqB+4"
Content-Encoding: gzip
A recursive mutex is a lockable object, just like mutex, but allows the same thread to acquire multiple levels of ownership over the mutex object.
This allows to lock (or try-lock) the mutex object from a thread that is already locking it, acquiring a new level of ownership over the mutex object: the mutex object will actually remain locked owning the thread until its member unlock is called as many times as this level of ownership.
It is guaranteed to be a standard-layout class.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<mutex>
classes
-
adopt_lock_tC++11
-
defer_lock_tC++11
-
lock_guardC++11
-
mutexC++11
-
once_flagC++11
-
recursive_mutexC++11
-
recursive_timed_mutexC++11
-
timed_mutexC++11
-
try_to_lock_tC++11
-
unique_lockC++11
-
functions
constants
-
adopt_lockC++11
-
defer_lockC++11
-
try_to_lockC++11
-
recursive_mutex
-
recursive_mutex::~recursive_mutexC++11
-
recursive_mutex::recursive_mutexC++11
member functions
-
recursive_mutex::lockC++11
-
recursive_mutex::native_handleC++11
-
recursive_mutex::try_lockC++11
-
recursive_mutex::unlockC++11
-
class
<mutex>
std::recursive_mutex
class recursive_mutex;
Recursive mutex class
This allows to lock (or try-lock) the mutex object from a thread that is already locking it, acquiring a new level of ownership over the mutex object: the mutex object will actually remain locked owning the thread until its member unlock is called as many times as this level of ownership.
It is guaranteed to be a standard-layout class.
Member types
member type | description |
---|---|
native_handle_type | Type returned by native_handle (only defined if library implementation supports it) |
Member functions
- (constructor)
- Construct recursive_mutex (public member function)
- lock
- Lock recursive mutex (public member function)
- try_lock
- Lock mutex if not locked by other threads (public member function)
- unlock
- Unlocks mutex (public member function)
- native_handle
- Get native handle (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us