thread.qbk 17 KB

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