33
Concurrency support library
[thread]
33.6
Mutual exclusion
[thread.mutex]
33.6.4
Mutex requirements
[thread.mutex.requirements]
33.6.4.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
33.6.4.5.2
Class
shared_
timed_
mutex
[thread.sharedtimedmutex.class]
🔗
namespace
std
{
class
shared_timed_mutex
{
public
:
shared_timed_mutex
(
)
;
~
shared_timed_mutex
(
)
; shared_timed_mutex
(
const
shared_timed_mutex
&
)
=
delete
; shared_timed_mutex
&
operator
=
(
const
shared_timed_mutex
&
)
=
delete
;
// exclusive ownership
void
lock
(
)
;
// blocking
bool
try_lock
(
)
;
template
<
class
Rep,
class
Period
>
bool
try_lock_for
(
const
chrono
::
duration
<
Rep, Period
>
&
rel_time
)
;
template
<
class
Clock,
class
Duration
>
bool
try_lock_until
(
const
chrono
::
time_point
<
Clock, Duration
>
&
abs_time
)
;
void
unlock
(
)
;
// shared ownership
void
lock_shared
(
)
;
// blocking
bool
try_lock_shared
(
)
;
template
<
class
Rep,
class
Period
>
bool
try_lock_shared_for
(
const
chrono
::
duration
<
Rep, Period
>
&
rel_time
)
;
template
<
class
Clock,
class
Duration
>
bool
try_lock_shared_until
(
const
chrono
::
time_point
<
Clock, Duration
>
&
abs_time
)
;
void
unlock_shared
(
)
;
}
;
}
1
#
The class
shared_
timed_
mutex
provides a non-recursive mutex with shared ownership semantics
.
2
#
The class
shared_
timed_
mutex
meets all of the shared timed mutex requirements (
[thread.
sharedtimedmutex.
requirements]
)
.
It is a standard-layout class (
[class.
prop]
)
.
3
#
The behavior of a program is undefined if:
(3.1)
it destroys a
shared_
timed_
mutex
object owned by any thread,
(3.2)
a thread attempts to recursively gain any ownership of a
shared_
timed_
mutex
, or
(3.3)
a thread terminates while possessing any ownership of a
shared_
timed_
mutex
.