]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [/ |
2 | (C) Copyright 2008-11 Anthony Williams | |
3 | (C) Copyright 2011-12 Vicente J. Botet Escriba | |
4 | Distributed under the Boost Software License, Version 1.0. | |
5 | (See accompanying file LICENSE_1_0.txt or copy at | |
6 | http://www.boost.org/LICENSE_1_0.txt). | |
7 | ] | |
8 | ||
9 | [library Thread | |
10 | [quickbook 1.5] | |
11 | [version 4.7.2] | |
12 | [authors [Williams, Anthony] [Botet Escriba, Vicente J.]] | |
13 | [copyright 2007-11 Anthony Williams] | |
14 | [copyright 2011-16 Vicente J. Botet Escriba] | |
15 | [purpose C++ Library for launching threads and synchronizing data between them] | |
16 | [category text] | |
17 | [license | |
18 | Distributed under the Boost Software License, Version 1.0. | |
19 | (See accompanying file LICENSE_1_0.txt or copy at | |
20 | [@http://www.boost.org/LICENSE_1_0.txt]) | |
21 | ] | |
22 | ] | |
23 | ||
24 | [template lockable_concept_link[link_text] [link thread.synchronization.mutex_concepts.lockable [link_text]]] | |
25 | [def __lockable_concept__ [lockable_concept_link `Lockable` concept]] | |
26 | [def __lockable_concept_type__ [lockable_concept_link `Lockable`]] | |
27 | [def __BasicLockable [link thread.synchronization.mutex_concepts.basic_lockable `BasicLockable`]] | |
28 | [def __Lockable [link thread.synchronization.mutex_concepts.lockable `Lockable`]] | |
29 | [def __TimedLockable [link thread.synchronization.mutex_concepts.timed_lockable `TimedLockable`]] | |
30 | [def __SharedLockable [link thread.synchronization.mutex_concepts.shared_lockable `SharedLockable`]] | |
31 | [def __UpgradeLockable [link thread.synchronization.mutex_concepts.upgrade_lockable `UpgradeLockable`]] | |
32 | ||
33 | [template timed_lockable_concept_link[link_text] [link thread.synchronization.mutex_concepts.timed_lockable [link_text]]] | |
34 | [def __timed_lockable_concept__ [timed_lockable_concept_link `TimedLockable` concept]] | |
35 | [def __timed_lockable_concept_type__ [timed_lockable_concept_link `TimedLockable`]] | |
36 | ||
37 | [template shared_lockable_concept_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable [link_text]]] | |
38 | [def __shared_lockable_concept__ [shared_lockable_concept_link `SharedLockable` concept]] | |
39 | [def __shared_lockable_concept_type__ [shared_lockable_concept_link `SharedLockable`]] | |
40 | ||
41 | [template upgrade_lockable_concept_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable [link_text]]] | |
42 | [def __upgrade_lockable_concept__ [upgrade_lockable_concept_link `UpgradeLockable` concept]] | |
43 | [def __upgrade_lockable_concept_type__ [upgrade_lockable_concept_link `UpgradeLockable`]] | |
44 | ||
45 | ||
46 | [template lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.basic_lockable.lock [link_text]]] | |
47 | [def __lock_ref__ [lock_ref_link `lock()`]] | |
48 | [def __lock [link thread.synchronization.mutex_concepts.basic_lockable.lock `lock`]] | |
49 | ||
50 | [template lock_multiple_ref_link[link_text] [link thread.synchronization.lock_functions.lock_multiple [link_text]]] | |
51 | [def __lock_multiple_ref__ [lock_multiple_ref_link `lock()`]] | |
52 | ||
53 | [template try_lock_multiple_ref_link[link_text] [link thread.synchronization.lock_functions.try_lock_multiple [link_text]]] | |
54 | [def __try_lock_multiple_ref__ [try_lock_multiple_ref_link `try_lock()`]] | |
55 | ||
56 | [template unlock_ref_link[link_text] [link thread.synchronization.mutex_concepts.basic_lockable.unlock [link_text]]] | |
57 | [def __unlock_ref__ [unlock_ref_link `unlock()`]] | |
58 | [def __unlock [link thread.synchronization.mutex_concepts.basic_lockable.unlock `unlock`]] | |
59 | ||
60 | [template try_lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.lockable.try_lock [link_text]]] | |
61 | [def __try_lock_ref__ [try_lock_ref_link `try_lock()`]] | |
62 | [def __try_lock [link thread.synchronization.mutex_concepts.lockable.try_lock `try_lock`]] | |
63 | ||
64 | [template timed_lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock [link_text]]] | |
65 | [def __timed_lock_ref__ [timed_lock_ref_link `timed_lock()`]] | |
66 | [def __timed_lock [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock `timed_lock`]] | |
67 | ||
68 | [def __try_lock_for [link thread.synchronization.mutex_concepts.timed_lockable.try_lock_for `try_lock_for`]] | |
69 | [def __try_lock_until [link thread.synchronization.mutex_concepts.timed_lockable.try_lock_until `try_lock_until`]] | |
70 | ||
71 | [template timed_lock_duration_ref_link[link_text] [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock_duration [link_text]]] | |
72 | [def __timed_lock_duration_ref__ [timed_lock_duration_ref_link `timed_lock()`]] | |
73 | [def __timed_lock_duration [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock_duration `timed_lock`]] | |
74 | ||
75 | [template lock_shared_ref_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable.lock_shared [link_text]]] | |
76 | [def __lock_shared_ref__ [lock_shared_ref_link `lock_shared()`]] | |
77 | [def __lock_shared [link thread.synchronization.mutex_concepts.shared_lockable.lock_shared `lock_shared()`]] | |
78 | ||
79 | [template unlock_shared_ref_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable.unlock_shared [link_text]]] | |
80 | [def __unlock_shared_ref__ [unlock_shared_ref_link `unlock_shared()`]] | |
81 | [def __unlock_shared [link thread.synchronization.mutex_concepts.shared_lockable.unlock_shared `unlock_shared()`]] | |
82 | ||
83 | [template try_lock_shared_ref_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared [link_text]]] | |
84 | [def __try_lock_shared_ref__ [try_lock_shared_ref_link `try_lock_shared()`]] | |
85 | [def __try_lock_shared [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared `try_lock_shared`]] | |
86 | ||
87 | [template timed_lock_shared_ref_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable.timed_lock_shared [link_text]]] | |
88 | [def __timed_lock_shared_ref__ [timed_lock_shared_ref_link `timed_lock_shared()`]] | |
89 | [def __try_lock_shared_for [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared_for `try_lock_shared_for`]] | |
90 | [def __try_lock_shared_for [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared_until `try_lock_shared_until`]] | |
91 | ||
92 | [template timed_lock_shared_duration_ref_link[link_text] [link thread.synchronization.mutex_concepts.shared_lockable.timed_lock_shared_duration [link_text]]] | |
93 | [def __timed_lock_shared_duration_ref__ [timed_lock_shared_duration_ref_link `timed_lock_shared()`]] | |
94 | [def __try_lock_shared_for [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared_for `try_lock_shared_for`]] | |
95 | [def __try_lock_shared_until [link thread.synchronization.mutex_concepts.shared_lockable.try_lock_shared_until `try_lock_shared_until`]] | |
96 | ||
97 | [template lock_upgrade_ref_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable.lock_upgrade [link_text]]] | |
98 | [def __lock_upgrade_ref__ [lock_upgrade_ref_link `lock_upgrade()`]] | |
99 | [def __lock_upgrade [link thread.synchronization.mutex_concepts.upgrade_lockable.lock_upgrade `lock_upgrade`]] | |
100 | [def __try_lock_upgrade [link thread.synchronization.mutex_concepts.upgrade_lockable.try_lock_upgrade `try_lock_upgrade`]] | |
101 | [def __try_lock_upgrade_for [link thread.synchronization.mutex_concepts.upgrade_lockable.try_lock_upgrade_for `try_lock_upgrade_for`]] | |
102 | [def __try_lock_upgrade_until [link thread.synchronization.mutex_concepts.upgrade_lockable.try_lock_upgrade_until `try_lock_upgrade_until`]] | |
103 | ||
104 | [template unlock_upgrade_ref_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade [link_text]]] | |
105 | [def __unlock_upgrade_ref__ [unlock_upgrade_ref_link `unlock_upgrade()`]] | |
106 | [def __unlock_upgrade [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade `unlock_upgrade`]] | |
107 | ||
108 | [template unlock_upgrade_and_lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade_and_lock [link_text]]] | |
109 | [def __unlock_upgrade_and_lock_ref__ [unlock_upgrade_and_lock_ref_link `unlock_upgrade_and_lock()`]] | |
110 | [def __unlock_upgrade_and_lock [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade_and_lock `unlock_upgrade_and_lock`]] | |
111 | ||
112 | [template unlock_and_lock_upgrade_ref_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_and_lock_upgrade [link_text]]] | |
113 | [def __unlock_and_lock_upgrade_ref__ [unlock_and_lock_upgrade_ref_link `unlock_and_lock_upgrade()`]] | |
114 | [def __unlock_and_lock_upgrade [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_and_lock_upgrade `unlock_and_lock_upgrade`]] | |
115 | ||
116 | [template unlock_upgrade_and_lock_shared_ref_link[link_text] [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade_and_lock_shared [link_text]]] | |
117 | [def __unlock_upgrade_and_lock_shared_ref__ [unlock_upgrade_and_lock_shared_ref_link `unlock_upgrade_and_lock_shared()`]] | |
118 | [def __unlock_upgrade_and_lock_shared [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_upgrade_and_lock_shared `unlock_upgrade_and_lock_shared`]] | |
119 | ||
120 | ||
121 | [def __try_unlock_shared_and_lock [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock `try_unlock_shared_and_lock`]] | |
122 | [def __try_unlock_shared_and_lock_for [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock_for `try_unlock_shared_and_lock_for`]] | |
123 | [def __try_unlock_shared_and_lock_until [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock_until `try_unlock_shared_and_lock_until`]] | |
124 | ||
125 | [def __unlock_and_lock_shared [link thread.synchronization.mutex_concepts.upgrade_lockable.unlock_and_lock_shared `unlock_and_lock_shared`]] | |
126 | ||
127 | [def __try_unlock_shared_and_lock_upgrade [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock_upgrade `try_unlock_shared_and_lock_upgrade`]] | |
128 | [def __try_unlock_shared_and_lock_upgrade_for [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock_upgrade_for `try_unlock_shared_and_lock_upgrade_for`]] | |
129 | [def __try_unlock_shared_and_lock_upgrade_until [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_shared_and_lock_upgrade_until `try_unlock_shared_and_lock_upgrade_until`]] | |
130 | ||
131 | [def __try_unlock_upgrade_and_lock [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_upgrade_and_lock `try_unlock_upgrade_and_lock`]] | |
132 | [def __try_unlock_upgrade_and_lock_for [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_upgrade_and_lock_for `try_unlock_upgrade_and_lock_for`]] | |
133 | [def __try_unlock_upgrade_and_lock_until [link thread.synchronization.mutex_concepts.upgrade_lockable.try_unlock_upgrade_and_lock_until `try_unlock_upgrade_and_lock_until`]] | |
134 | ||
135 | ||
136 | [template owns_lock_ref_link[link_text] [link thread.synchronization.locks.unique_lock.owns_lock [link_text]]] | |
137 | [def __owns_lock_ref__ [owns_lock_ref_link `owns_lock()`]] | |
138 | [def __owns_lock [owns_lock_ref_link `owns_lock()`]] | |
139 | ||
140 | [template owns_lock_shared_ref_link[link_text] [link thread.synchronization.locks.shared_lock.owns_lock [link_text]]] | |
141 | [def __owns_lock_shared_ref__ [owns_lock_shared_ref_link `owns_lock()`]] | |
142 | ||
143 | [template mutex_func_ref_link[link_text] [link thread.synchronization.locks.unique_lock.mutex [link_text]]] | |
144 | [def __mutex_func_ref__ [mutex_func_ref_link `mutex()`]] | |
145 | ||
146 | [def __boost_thread__ [*Boost.Thread]] | |
147 | [def __not_a_thread__ ['Not-a-Thread]] | |
148 | [def __interruption_points__ [link interruption_points ['interruption points]]] | |
149 | [def __lock_error__ `lock_error`] | |
150 | ||
151 | [def __mutex__ [link thread.synchronization.mutex_types.mutex `boost::mutex`]] | |
152 | [def __try_mutex__ [link thread.synchronization.mutex_types.try_mutex `boost::try_mutex`]] | |
153 | [def __timed_mutex__ [link thread.synchronization.mutex_types.timed_mutex `boost::timed_mutex`]] | |
154 | [def __recursive_mutex__ [link thread.synchronization.mutex_types.recursive_mutex `boost::recursive_mutex`]] | |
155 | [def __recursive_try_mutex__ [link thread.synchronization.mutex_types.recursive_try_mutex `boost::recursive_try_mutex`]] | |
156 | [def __recursive_timed_mutex__ [link thread.synchronization.mutex_types.recursive_timed_mutex `boost::recursive_timed_mutex`]] | |
157 | [def __shared_mutex__ [link thread.synchronization.mutex_types.shared_mutex `boost::shared_mutex`]] | |
158 | ||
159 | ||
160 | [def __StrictLock [link thread.synchronization.lock_concepts.StrictLock `StrictLock`]] | |
161 | ||
162 | [template unique_lock_link[link_text] [link thread.synchronization.locks.unique_lock [link_text]]] | |
163 | ||
164 | [def __lock_guard__ [link thread.synchronization.lock_guard.lock_guard `boost::lock_guard`]] | |
165 | [def __unique_lock__ [unique_lock_link `boost::unique_lock`]] | |
166 | [def __unique_lock [unique_lock_link `boost::unique_lock`]] | |
167 | [def __shared_lock__ [link thread.synchronization.locks.shared_lock `boost::shared_lock`]] | |
168 | [def __upgrade_lock__ [link thread.synchronization.locks.upgrade_lock `boost::upgrade_lock`]] | |
169 | [def __upgrade_to_unique_lock__ [link thread.synchronization.locks.upgrade_to_unique_lock `boost::upgrade_to_unique_lock`]] | |
170 | [def __reverse_lock [link thread.synchronization.other_locks.reverse_lock `reverse_lock`]] | |
171 | [def __shared_lock_guard [link thread.synchronization.other_locks.shared_lock_guard `shared_lock_guard`]] | |
172 | [def __shared_lock_guard_constructor_adopt [link thread.synchronization.other_locks.shared_lock_guard `shared_lock_guard`]] | |
173 | ||
174 | [def __strict_lock [link thread.synchronization.other_locks.strict_locks.strict_lock `strict_lock`]] | |
175 | [def __nested_strict_lock [link thread.synchronization.other_locks.strict_locks.nested_strict_lock `nested_strict_lock`]] | |
176 | ||
177 | ||
178 | [def __thread__ [link thread.thread_management.thread `boost::thread`]] | |
179 | [def __thread [link thread.thread_management.thread `thread`]] | |
180 | [def __thread_id__ [link thread.thread_management.thread.id `boost::thread::id`]] | |
181 | [template join_link[link_text] [link thread.thread_management.thread.join [link_text]]] | |
182 | [def __join__ [join_link `join()`]] | |
183 | ||
184 | [def __try_join_for [link thread.thread_management.thread.try_join_for `try_join_for`]] | |
185 | [def __try_join_until [link thread.thread_management.thread.try_join_until `try_join_until`]] | |
186 | ||
187 | [template timed_join_link[link_text] [link thread.thread_management.thread.timed_join [link_text]]] | |
188 | [def __timed_join__ [timed_join_link `timed_join()`]] | |
189 | [def __detach__ [link thread.thread_management.thread.detach `detach()`]] | |
190 | [def __interrupt__ [link thread.thread_management.thread.interrupt `interrupt()`]] | |
191 | [def __sleep__ [link thread.thread_management.this_thread.sleep `boost::this_thread::sleep()`]] | |
192 | [def __sleep_for [link thread.thread_management.this_thread.sleep_for `sleep_for`]] | |
193 | [def __sleep_until [link thread.thread_management.this_thread.sleep_until `sleep_until`]] | |
194 | [def __yield [link thread.thread_management.this_thread.yield `yield`]] | |
195 | [def __get_id [link thread.thread_management.thread.get_id `get_id`]] | |
196 | ||
197 | [def __interruption_enabled__ [link thread.thread_management.this_thread.interruption_enabled `boost::this_thread::interruption_enabled()`]] | |
198 | [def __interruption_requested__ [link thread.thread_management.this_thread.interruption_requested `boost::this_thread::interruption_requested()`]] | |
199 | [def __interruption_point__ [link thread.thread_management.this_thread.interruption_point `boost::this_thread::interruption_point()`]] | |
200 | [def __disable_interruption__ [link thread.thread_management.this_thread.disable_interruption `boost::this_thread::disable_interruption`]] | |
201 | [def __restore_interruption__ [link thread.thread_management.this_thread.restore_interruption `boost::this_thread::restore_interruption`]] | |
202 | ||
203 | [def __thread_resource_error__ `boost::thread_resource_error`] | |
204 | [def __thread_interrupted__ `boost::thread_interrupted`] | |
205 | [def __barrier__ [link thread.synchronization.barriers.barrier `boost::barrier`]] | |
206 | [def __latch__ [link thread.synchronization.latches.latch `latch`]] | |
207 | ||
208 | [template cond_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable.wait [link_text]]] | |
209 | [def __cond_wait__ [cond_wait_link `wait()`]] | |
210 | [template cond_timed_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable.timed_wait [link_text]]] | |
211 | [def __cond_timed_wait__ [cond_timed_wait_link `timed_wait()`]] | |
212 | ||
213 | [def __condition_variable [link thread.synchronization.condvar_ref.condition_variable `condition_variable`]] | |
214 | [def __wait_for [link thread.synchronization.condvar_ref.condition_variable.wait_for `wait_for`]] | |
215 | [def __wait_until [link thread.synchronization.condvar_ref.condition_variable.wait_until `wait_until`]] | |
216 | ||
217 | ||
218 | [template cond_any_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable_any.wait [link_text]]] | |
219 | [def __cond_any_wait__ [cond_any_wait_link `wait()`]] | |
220 | [template cond_any_timed_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable_any.timed_wait [link_text]]] | |
221 | [def __cond_any_timed_wait__ [cond_any_timed_wait_link `timed_wait()`]] | |
222 | ||
223 | [def __condition_variable_any [link thread.synchronization.condvar_ref.condition_variable_any `condition_variable_any`]] | |
224 | [def __cvany_wait_for [link thread.synchronization.condvar_ref.condition_variable_any.wait_for `wait_for`]] | |
225 | [def __cvany_wait_until [link thread.synchronization.condvar_ref.condition_variable_any.wait_until `wait_until`]] | |
226 | ||
227 | [def __blocked__ ['blocked]] | |
228 | ||
229 | [include overview.qbk] | |
230 | [include changes.qbk] | |
231 | ||
232 | [include thread_ref.qbk] | |
233 | [include scoped_thread.qbk] | |
234 | ||
235 | [section:synchronization Synchronization] | |
236 | [include sync_tutorial.qbk] | |
237 | [include mutex_concepts.qbk] | |
238 | [include mutexes.qbk] | |
239 | [include condition_variables.qbk] | |
240 | [include once.qbk] | |
241 | [include barrier.qbk] | |
242 | [include latch.qbk] | |
243 | [include async_executors.qbk] | |
244 | [include futures.qbk] | |
245 | [endsect] | |
246 | ||
247 | [include tss.qbk] | |
248 | ||
249 | [section:sds Synchronized Data Structures] | |
250 | [include synchronized_value.qbk] | |
251 | [include sync_queues_ref.qbk] | |
252 | [/include sync_streams.qbk] | |
253 | [endsect] | |
254 | ||
255 | [include parallel.qbk] | |
256 | ||
257 | [include time.qbk] | |
258 | ||
259 | [include emulations.qbk] | |
260 | ||
261 | [include acknowledgements.qbk] | |
262 | ||
263 | [include compliance.qbk] |