From Jason Turner

[saferecl.hp.holder.nonmem]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp02sddnkt/{from.md → to.md} +258 -0
tmp/tmp02sddnkt/{from.md → to.md} RENAMED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##### Non-member functions <a id="saferecl.hp.holder.nonmem">[[saferecl.hp.holder.nonmem]]</a>
2
+
3
+ ``` cpp
4
+ hazard_pointer make_hazard_pointer();
5
+ ```
6
+
7
+ *Effects:* Constructs a hazard pointer.
8
+
9
+ *Returns:* A `hazard_pointer` object that owns the newly-constructed
10
+ hazard pointer.
11
+
12
+ *Throws:* May throw `bad_alloc` if memory for the hazard pointer could
13
+ not be allocated.
14
+
15
+ ``` cpp
16
+ void swap(hazard_pointer& a, hazard_pointer& b) noexcept;
17
+ ```
18
+
19
+ *Effects:* Equivalent to `a.swap(b)`.
20
+
21
+ <!-- Link reference definitions -->
22
+ [alg.min.max]: algorithms.md#alg.min.max
23
+ [alg.sorting]: algorithms.md#alg.sorting
24
+ [allocator.requirements.general]: library.md#allocator.requirements.general
25
+ [atomic.types.int.comp]: #atomic.types.int.comp
26
+ [atomic.types.pointer.comp]: #atomic.types.pointer.comp
27
+ [atomics]: #atomics
28
+ [atomics.alias]: #atomics.alias
29
+ [atomics.fences]: #atomics.fences
30
+ [atomics.flag]: #atomics.flag
31
+ [atomics.general]: #atomics.general
32
+ [atomics.lockfree]: #atomics.lockfree
33
+ [atomics.nonmembers]: #atomics.nonmembers
34
+ [atomics.order]: #atomics.order
35
+ [atomics.ref.float]: #atomics.ref.float
36
+ [atomics.ref.generic]: #atomics.ref.generic
37
+ [atomics.ref.generic.general]: #atomics.ref.generic.general
38
+ [atomics.ref.int]: #atomics.ref.int
39
+ [atomics.ref.memop]: #atomics.ref.memop
40
+ [atomics.ref.ops]: #atomics.ref.ops
41
+ [atomics.ref.pointer]: #atomics.ref.pointer
42
+ [atomics.syn]: #atomics.syn
43
+ [atomics.types.float]: #atomics.types.float
44
+ [atomics.types.generic]: #atomics.types.generic
45
+ [atomics.types.generic.general]: #atomics.types.generic.general
46
+ [atomics.types.int]: #atomics.types.int
47
+ [atomics.types.memop]: #atomics.types.memop
48
+ [atomics.types.operations]: #atomics.types.operations
49
+ [atomics.types.pointer]: #atomics.types.pointer
50
+ [atomics.wait]: #atomics.wait
51
+ [barrier.syn]: #barrier.syn
52
+ [basic.align]: basic.md#basic.align
53
+ [basic.fundamental]: basic.md#basic.fundamental
54
+ [basic.life]: basic.md#basic.life
55
+ [basic.stc.general]: basic.md#basic.stc.general
56
+ [basic.stc.thread]: basic.md#basic.stc.thread
57
+ [bitmask.types]: library.md#bitmask.types
58
+ [cfenv]: numerics.md#cfenv
59
+ [class.prop]: class.md#class.prop
60
+ [compliance]: library.md#compliance
61
+ [concept.booleantestable]: concepts.md#concept.booleantestable
62
+ [condition.variable.syn]: #condition.variable.syn
63
+ [conv.rval]: expr.md#conv.rval
64
+ [cpp17.defaultconstructible]: #cpp17.defaultconstructible
65
+ [cpp17.destructible]: #cpp17.destructible
66
+ [cpp17.lessthancomparable]: #cpp17.lessthancomparable
67
+ [cpp17.moveassignable]: #cpp17.moveassignable
68
+ [cpp17.moveconstructible]: #cpp17.moveconstructible
69
+ [defns.block]: intro.md#defns.block
70
+ [except.terminate]: except.md#except.terminate
71
+ [expr.pre]: expr.md#expr.pre
72
+ [expr.rel]: expr.md#expr.rel
73
+ [format.string.std]: text.md#format.string.std
74
+ [func.invoke]: utilities.md#func.invoke
75
+ [func.require]: utilities.md#func.require
76
+ [function.objects]: utilities.md#function.objects
77
+ [future.syn]: #future.syn
78
+ [futures]: #futures
79
+ [futures.async]: #futures.async
80
+ [futures.errors]: #futures.errors
81
+ [futures.future.error]: #futures.future.error
82
+ [futures.overview]: #futures.overview
83
+ [futures.promise]: #futures.promise
84
+ [futures.shared.future]: #futures.shared.future
85
+ [futures.state]: #futures.state
86
+ [futures.task]: #futures.task
87
+ [futures.task.general]: #futures.task.general
88
+ [futures.task.members]: #futures.task.members
89
+ [futures.task.nonmembers]: #futures.task.nonmembers
90
+ [futures.unique.future]: #futures.unique.future
91
+ [hazard.pointer.syn]: #hazard.pointer.syn
92
+ [intro.multithread]: basic.md#intro.multithread
93
+ [intro.progress]: basic.md#intro.progress
94
+ [intro.races]: basic.md#intro.races
95
+ [latch.syn]: #latch.syn
96
+ [limits.syn]: support.md#limits.syn
97
+ [mutex.syn]: #mutex.syn
98
+ [rcu.syn]: #rcu.syn
99
+ [res.on.data.races]: library.md#res.on.data.races
100
+ [res.on.exception.handling]: library.md#res.on.exception.handling
101
+ [saferecl]: #saferecl
102
+ [saferecl.general]: #saferecl.general
103
+ [saferecl.hp]: #saferecl.hp
104
+ [saferecl.hp.base]: #saferecl.hp.base
105
+ [saferecl.hp.general]: #saferecl.hp.general
106
+ [saferecl.hp.holder]: #saferecl.hp.holder
107
+ [saferecl.hp.holder.ctor]: #saferecl.hp.holder.ctor
108
+ [saferecl.hp.holder.general]: #saferecl.hp.holder.general
109
+ [saferecl.hp.holder.mem]: #saferecl.hp.holder.mem
110
+ [saferecl.hp.holder.nonmem]: #saferecl.hp.holder.nonmem
111
+ [saferecl.rcu]: #saferecl.rcu
112
+ [saferecl.rcu.base]: #saferecl.rcu.base
113
+ [saferecl.rcu.domain]: #saferecl.rcu.domain
114
+ [saferecl.rcu.domain.func]: #saferecl.rcu.domain.func
115
+ [saferecl.rcu.domain.general]: #saferecl.rcu.domain.general
116
+ [saferecl.rcu.domain.members]: #saferecl.rcu.domain.members
117
+ [saferecl.rcu.general]: #saferecl.rcu.general
118
+ [semaphore.syn]: #semaphore.syn
119
+ [shared.mutex.syn]: #shared.mutex.syn
120
+ [stdatomic.h.syn]: #stdatomic.h.syn
121
+ [stopcallback]: #stopcallback
122
+ [stopcallback.cons]: #stopcallback.cons
123
+ [stopcallback.general]: #stopcallback.general
124
+ [stopcallback.inplace]: #stopcallback.inplace
125
+ [stopcallback.inplace.cons]: #stopcallback.inplace.cons
126
+ [stopcallback.inplace.general]: #stopcallback.inplace.general
127
+ [stopsource]: #stopsource
128
+ [stopsource.cons]: #stopsource.cons
129
+ [stopsource.general]: #stopsource.general
130
+ [stopsource.inplace]: #stopsource.inplace
131
+ [stopsource.inplace.cons]: #stopsource.inplace.cons
132
+ [stopsource.inplace.general]: #stopsource.inplace.general
133
+ [stopsource.inplace.mem]: #stopsource.inplace.mem
134
+ [stopsource.mem]: #stopsource.mem
135
+ [stoptoken]: #stoptoken
136
+ [stoptoken.concepts]: #stoptoken.concepts
137
+ [stoptoken.general]: #stoptoken.general
138
+ [stoptoken.inplace]: #stoptoken.inplace
139
+ [stoptoken.inplace.general]: #stoptoken.inplace.general
140
+ [stoptoken.inplace.mem]: #stoptoken.inplace.mem
141
+ [stoptoken.mem]: #stoptoken.mem
142
+ [stoptoken.never]: #stoptoken.never
143
+ [syserr]: diagnostics.md#syserr
144
+ [syserr.syserr]: diagnostics.md#syserr.syserr
145
+ [term.padding.bits]: basic.md#term.padding.bits
146
+ [term.unevaluated.operand]: expr.md#term.unevaluated.operand
147
+ [thread]: #thread
148
+ [thread.barrier]: #thread.barrier
149
+ [thread.barrier.class]: #thread.barrier.class
150
+ [thread.barrier.general]: #thread.barrier.general
151
+ [thread.condition]: #thread.condition
152
+ [thread.condition.condvar]: #thread.condition.condvar
153
+ [thread.condition.condvarany]: #thread.condition.condvarany
154
+ [thread.condition.condvarany.general]: #thread.condition.condvarany.general
155
+ [thread.condition.general]: #thread.condition.general
156
+ [thread.condition.nonmember]: #thread.condition.nonmember
157
+ [thread.condvarany.intwait]: #thread.condvarany.intwait
158
+ [thread.condvarany.wait]: #thread.condvarany.wait
159
+ [thread.coord]: #thread.coord
160
+ [thread.coord.general]: #thread.coord.general
161
+ [thread.general]: #thread.general
162
+ [thread.jthread.class]: #thread.jthread.class
163
+ [thread.jthread.class.general]: #thread.jthread.class.general
164
+ [thread.jthread.cons]: #thread.jthread.cons
165
+ [thread.jthread.mem]: #thread.jthread.mem
166
+ [thread.jthread.special]: #thread.jthread.special
167
+ [thread.jthread.static]: #thread.jthread.static
168
+ [thread.jthread.stop]: #thread.jthread.stop
169
+ [thread.latch]: #thread.latch
170
+ [thread.latch.class]: #thread.latch.class
171
+ [thread.latch.general]: #thread.latch.general
172
+ [thread.lock]: #thread.lock
173
+ [thread.lock.algorithm]: #thread.lock.algorithm
174
+ [thread.lock.general]: #thread.lock.general
175
+ [thread.lock.guard]: #thread.lock.guard
176
+ [thread.lock.scoped]: #thread.lock.scoped
177
+ [thread.lock.shared]: #thread.lock.shared
178
+ [thread.lock.shared.cons]: #thread.lock.shared.cons
179
+ [thread.lock.shared.general]: #thread.lock.shared.general
180
+ [thread.lock.shared.locking]: #thread.lock.shared.locking
181
+ [thread.lock.shared.mod]: #thread.lock.shared.mod
182
+ [thread.lock.shared.obs]: #thread.lock.shared.obs
183
+ [thread.lock.unique]: #thread.lock.unique
184
+ [thread.lock.unique.cons]: #thread.lock.unique.cons
185
+ [thread.lock.unique.general]: #thread.lock.unique.general
186
+ [thread.lock.unique.locking]: #thread.lock.unique.locking
187
+ [thread.lock.unique.mod]: #thread.lock.unique.mod
188
+ [thread.lock.unique.obs]: #thread.lock.unique.obs
189
+ [thread.mutex]: #thread.mutex
190
+ [thread.mutex.class]: #thread.mutex.class
191
+ [thread.mutex.general]: #thread.mutex.general
192
+ [thread.mutex.recursive]: #thread.mutex.recursive
193
+ [thread.mutex.requirements]: #thread.mutex.requirements
194
+ [thread.mutex.requirements.general]: #thread.mutex.requirements.general
195
+ [thread.mutex.requirements.mutex]: #thread.mutex.requirements.mutex
196
+ [thread.mutex.requirements.mutex.general]: #thread.mutex.requirements.mutex.general
197
+ [thread.once]: #thread.once
198
+ [thread.once.callonce]: #thread.once.callonce
199
+ [thread.once.onceflag]: #thread.once.onceflag
200
+ [thread.req]: #thread.req
201
+ [thread.req.exception]: #thread.req.exception
202
+ [thread.req.lockable]: #thread.req.lockable
203
+ [thread.req.lockable.basic]: #thread.req.lockable.basic
204
+ [thread.req.lockable.general]: #thread.req.lockable.general
205
+ [thread.req.lockable.req]: #thread.req.lockable.req
206
+ [thread.req.lockable.shared]: #thread.req.lockable.shared
207
+ [thread.req.lockable.shared.timed]: #thread.req.lockable.shared.timed
208
+ [thread.req.lockable.timed]: #thread.req.lockable.timed
209
+ [thread.req.native]: #thread.req.native
210
+ [thread.req.paramname]: #thread.req.paramname
211
+ [thread.req.timing]: #thread.req.timing
212
+ [thread.sema]: #thread.sema
213
+ [thread.sema.cnt]: #thread.sema.cnt
214
+ [thread.sema.general]: #thread.sema.general
215
+ [thread.sharedmutex.class]: #thread.sharedmutex.class
216
+ [thread.sharedmutex.requirements]: #thread.sharedmutex.requirements
217
+ [thread.sharedmutex.requirements.general]: #thread.sharedmutex.requirements.general
218
+ [thread.sharedtimedmutex.class]: #thread.sharedtimedmutex.class
219
+ [thread.sharedtimedmutex.requirements]: #thread.sharedtimedmutex.requirements
220
+ [thread.sharedtimedmutex.requirements.general]: #thread.sharedtimedmutex.requirements.general
221
+ [thread.stoptoken]: #thread.stoptoken
222
+ [thread.stoptoken.intro]: #thread.stoptoken.intro
223
+ [thread.stoptoken.syn]: #thread.stoptoken.syn
224
+ [thread.summary]: #thread.summary
225
+ [thread.syn]: #thread.syn
226
+ [thread.thread.algorithm]: #thread.thread.algorithm
227
+ [thread.thread.assign]: #thread.thread.assign
228
+ [thread.thread.class]: #thread.thread.class
229
+ [thread.thread.class.general]: #thread.thread.class.general
230
+ [thread.thread.constr]: #thread.thread.constr
231
+ [thread.thread.destr]: #thread.thread.destr
232
+ [thread.thread.id]: #thread.thread.id
233
+ [thread.thread.member]: #thread.thread.member
234
+ [thread.thread.static]: #thread.thread.static
235
+ [thread.thread.this]: #thread.thread.this
236
+ [thread.threads]: #thread.threads
237
+ [thread.threads.general]: #thread.threads.general
238
+ [thread.timedmutex.class]: #thread.timedmutex.class
239
+ [thread.timedmutex.recursive]: #thread.timedmutex.recursive
240
+ [thread.timedmutex.requirements]: #thread.timedmutex.requirements
241
+ [thread.timedmutex.requirements.general]: #thread.timedmutex.requirements.general
242
+ [time]: time.md#time
243
+ [time.clock]: time.md#time.clock
244
+ [time.clock.req]: time.md#time.clock.req
245
+ [time.duration]: time.md#time.duration
246
+ [time.point]: time.md#time.point
247
+ [unord.hash]: utilities.md#unord.hash
248
+ [util.sharedptr]: mem.md#util.sharedptr
249
+ [util.smartptr.atomic]: #util.smartptr.atomic
250
+ [util.smartptr.atomic.general]: #util.smartptr.atomic.general
251
+ [util.smartptr.atomic.shared]: #util.smartptr.atomic.shared
252
+ [util.smartptr.atomic.weak]: #util.smartptr.atomic.weak
253
+
254
+ [^1]: Implementations for which standard time units are meaningful will
255
+ typically have a steady clock within their hardware implementation.
256
+
257
+ [^2]: That is, atomic operations on the same memory location via two
258
+ different addresses will communicate atomically.