From Jason Turner

[thread.sharedtimedmutex.class]

Diff to HTML by rtfpessoa

tmp/tmpuvxvezbq/{from.md → to.md} RENAMED
@@ -8,39 +8,37 @@ namespace std {
8
  ~shared_timed_mutex();
9
 
10
  shared_timed_mutex(const shared_timed_mutex&) = delete;
11
  shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
12
 
13
- // Exclusive ownership
14
  void lock(); // blocking
15
  bool try_lock();
16
  template<class Rep, class Period>
17
  bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
18
  template<class Clock, class Duration>
19
  bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
20
  void unlock();
21
 
22
- // Shared ownership
23
  void lock_shared(); // blocking
24
  bool try_lock_shared();
25
  template<class Rep, class Period>
26
- bool
27
- try_lock_shared_for(const chrono::duration<Rep, Period>& rel_time);
28
  template<class Clock, class Duration>
29
- bool
30
- try_lock_shared_until(const chrono::time_point<Clock, Duration>& abs_time);
31
  void unlock_shared();
32
  };
33
  }
34
  ```
35
 
36
  The class `shared_timed_mutex` provides a non-recursive mutex with
37
  shared ownership semantics.
38
 
39
- The class `shared_timed_mutex` shall satisfy all of the shared timed
40
- mutex requirements ([[thread.sharedtimedmutex.requirements]]). It shall
41
- be a standard-layout class (Clause  [[class]]).
42
 
43
  The behavior of a program is undefined if:
44
 
45
  - it destroys a `shared_timed_mutex` object owned by any thread,
46
  - a thread attempts to recursively gain any ownership of a
 
8
  ~shared_timed_mutex();
9
 
10
  shared_timed_mutex(const shared_timed_mutex&) = delete;
11
  shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
12
 
13
+ // exclusive ownership
14
  void lock(); // blocking
15
  bool try_lock();
16
  template<class Rep, class Period>
17
  bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
18
  template<class Clock, class Duration>
19
  bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
20
  void unlock();
21
 
22
+ // shared ownership
23
  void lock_shared(); // blocking
24
  bool try_lock_shared();
25
  template<class Rep, class Period>
26
+ bool try_lock_shared_for(const chrono::duration<Rep, Period>& rel_time);
 
27
  template<class Clock, class Duration>
28
+ bool try_lock_shared_until(const chrono::time_point<Clock, Duration>& abs_time);
 
29
  void unlock_shared();
30
  };
31
  }
32
  ```
33
 
34
  The class `shared_timed_mutex` provides a non-recursive mutex with
35
  shared ownership semantics.
36
 
37
+ The class `shared_timed_mutex` meets all of the shared timed mutex
38
+ requirements [[thread.sharedtimedmutex.requirements]]. It is a
39
+ standard-layout class [[class.prop]].
40
 
41
  The behavior of a program is undefined if:
42
 
43
  - it destroys a `shared_timed_mutex` object owned by any thread,
44
  - a thread attempts to recursively gain any ownership of a