From Jason Turner

[thread.req.lockable.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpirmgey0q/{from.md → to.md} +17 -3
tmp/tmpirmgey0q/{from.md → to.md} RENAMED
@@ -17,12 +17,26 @@ The standard library templates `unique_lock` [[thread.lock.unique]],
17
  `shared_lock` [[thread.lock.shared]], `scoped_lock`
18
  [[thread.lock.scoped]], `lock_guard` [[thread.lock.guard]], `lock`,
19
  `try_lock` [[thread.lock.algorithm]], and `condition_variable_any`
20
  [[thread.condition.condvarany]] all operate on user-supplied lockable
21
  objects. The *Cpp17BasicLockable* requirements, the *Cpp17Lockable*
22
- requirements, and the *Cpp17TimedLockable* requirements list the
23
- requirements imposed by these library types in order to acquire or
24
- release ownership of a `lock` by a given execution agent.
 
 
25
 
26
  [*Note 3*: The nature of any lock ownership and any synchronization it
27
  entails are not part of these requirements. — *end note*]
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  `shared_lock` [[thread.lock.shared]], `scoped_lock`
18
  [[thread.lock.scoped]], `lock_guard` [[thread.lock.guard]], `lock`,
19
  `try_lock` [[thread.lock.algorithm]], and `condition_variable_any`
20
  [[thread.condition.condvarany]] all operate on user-supplied lockable
21
  objects. The *Cpp17BasicLockable* requirements, the *Cpp17Lockable*
22
+ requirements, the *Cpp17TimedLockable* requirements, the
23
+ *Cpp17SharedLockable* requirements, and the *Cpp17SharedTimedLockable*
24
+ requirements list the requirements imposed by these library types in
25
+ order to acquire or release ownership of a `lock` by a given execution
26
+ agent.
27
 
28
  [*Note 3*: The nature of any lock ownership and any synchronization it
29
  entails are not part of these requirements. — *end note*]
30
 
31
+ A lock on an object `m` is said to be
32
+
33
+ - a *non-shared lock* if it is acquired by a call to `lock`, `try_lock`,
34
+ `try_lock_for`, or `try_lock_until` on `m`, or
35
+ - a *shared lock* if it is acquired by a call to `lock_shared`,
36
+ `try_lock_shared`, `try_lock_shared_for`, or `try_lock_shared_until`
37
+ on `m`.
38
+
39
+ [*Note 4*: Only the method of lock acquisition is considered; the
40
+ nature of any lock ownership is not part of these
41
+ definitions. — *end note*]
42
+