Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/thread/timed mutex"

From cppreference.com
< cpp‎ | thread
m (Text replace - "{{dcl list begin}} {{dcl list h1 | Member functions}}" to "===Member functions=== {{dcl list begin}}")
m (fmt)
 
(23 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{cpp/title|timed_mutex}}
 
{{cpp/title|timed_mutex}}
{{cpp/thread/timed_mutex/sidebar}}
+
{{cpp/thread/timed_mutex/navbar}}
{{ddcl | header=mutex | notes={{mark c++11 feature}} | 1=
+
{{ddcl|header=mutex|since=c++11|1=
 
class timed_mutex;
 
class timed_mutex;
 
}}
 
}}
  
The class {{cpp|timed_mutex}} is a synchronization primitive, offering exclusive, non-recursive ownership semantics. The class is non-copyable.
+
The {{tt|timed_mutex}} class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.  
  
{{todo}}
+
In a manner similar to {{ltt|cpp/thread/mutex}}, {{tt|timed_mutex}} offers exclusive, non-recursive ownership semantics. In addition, {{tt|timed_mutex}} provides the ability to attempt to claim ownership of a {{tt|timed_mutex}} with a timeout via the member functions {{ltf|cpp/thread/timed_mutex/try_lock_for}} and {{ltf|cpp/thread/timed_mutex/try_lock_until}}.
  
{{tdcl list begin}}
+
The {{tt|timed_mutex}} class satisfies all requirements of {{named req|TimedMutex}} and {{named req|StandardLayoutType}}.
{{tdcl list h1 | Member types}}
+
 
{{tdcl list hitem | Member type | Definition}}
+
===Member types===
{{tdcl list item | {{tt|native_handle_type}} | ''implementation-defined''}}
+
{{dsc begin}}
{{tdcl list end}}
+
{{dsc hitem|Member type|Definition}}
 +
{{dsc inc|cpp/thread/dsc native_handle_type|timed_mutex}}
 +
{{dsc end}}
  
 
===Member functions===
 
===Member functions===
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list template | cpp/thread/mutex/dcl list constructor | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc constructor|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc destructor|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc operator{{=}}}}
 +
 
 +
{{dsc h2|Locking}}
 +
{{dsc inc|cpp/thread/mutex/dsc lock|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc try_lock|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc try_lock_for|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc try_lock_until|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc unlock|timed_mutex}}
  
{{dcl list h2 | Locking}}
+
{{dsc h2|Native handle}}
{{dcl list template | cpp/thread/mutex/dcl list lock | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc native_handle|timed_mutex}}
{{dcl list template | cpp/thread/mutex/dcl list try_lock | timed_mutex}}
+
{{dsc end}}
{{dcl list template | cpp/thread/mutex/dcl list try_lock_for | timed_mutex}}
+
{{dcl list template | cpp/thread/mutex/dcl list try_lock_until | timed_mutex}}
+
{{dcl list template | cpp/thread/mutex/dcl list unlock | timed_mutex}}
+
  
{{dcl list h2 | Native handle}}
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
{{dcl list template | cpp/thread/mutex/dcl list native_handle | timed_mutex}}
+
{{dcl list end}}
+

Latest revision as of 07:48, 31 December 2023

 
 
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
(C++11)
timed_mutex
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Safe Reclamation
(C++26)
Hazard Pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
Defined in header <mutex>
class timed_mutex;
(since C++11)

The timed_mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.

In a manner similar to mutex, timed_mutex offers exclusive, non-recursive ownership semantics. In addition, timed_mutex provides the ability to attempt to claim ownership of a timed_mutex with a timeout via the member functions try_lock_for() and try_lock_until().

The timed_mutex class satisfies all requirements of TimedMutex and StandardLayoutType.

Contents

[edit] Member types

Member type Definition
native_handle_type (optional*) implementation-defined[edit]

[edit] Member functions

constructs the mutex
(public member function) [edit]
destroys the mutex
(public member function) [edit]
operator=
[deleted]
not copy-assignable
(public member function) [edit]
Locking
locks the mutex, blocks if the mutex is not available
(public member function) [edit]
tries to lock the mutex, returns if the mutex is not available
(public member function) [edit]
tries to lock the mutex, returns if the mutex has been
unavailable for the specified timeout duration
(public member function) [edit]
tries to lock the mutex, returns if the mutex has been
unavailable until specified time point has been reached
(public member function) [edit]
unlocks the mutex
(public member function) [edit]
Native handle
returns the underlying implementation-defined native handle object
(public member function) [edit]