• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>History</title>
6<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../thread.html" title="Chapter 39. Thread 4.8.0">
10<link rel="prev" href="build.html" title="Using and building the library">
11<link rel="next" href="future.html" title="Future">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
16<td align="center"><a href="../../../index.html">Home</a></td>
17<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="build.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="future.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="section">
27<div class="titlepage"><div><div><h2 class="title" style="clear: both">
28<a name="thread.changes"></a><a class="link" href="changes.html" title="History">History</a>
29</h2></div></div></div>
30<h4>
31<a name="thread.changes.h0"></a>
32      <span class="phrase"><a name="thread.changes.version_4_9_0___boost_1_70"></a></span><a class="link" href="changes.html#thread.changes.version_4_9_0___boost_1_70">Version
33      4.9.0 - boost 1.70</a>
34    </h4>
35<p>
36      <span class="bold"><strong>Know Bugs:</strong></span>
37    </p>
38<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
39<li class="listitem">
40          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
41          thread_specific_ptr + dlopen library causes a SIGSEGV.
42        </li>
43<li class="listitem">
44          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
45          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
46        </li>
47</ul></div>
48<p>
49      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
50      Know Bugs</a> to see the current state.
51    </p>
52<p>
53      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
54      master regression test</a> to see the last regression test snapshot.
55    </p>
56<p>
57      <span class="bold"><strong>Fixed Bugs:</strong></span>
58    </p>
59<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
60<li class="listitem">
61          <a href="https://github.com/boostorg/thread/pull/268" target="_top">https://github.com/boostorg/thread/pull/268</a>
62          Add self contained header tests and fix discovered bugs
63        </li>
64<li class="listitem">
65          Improvements support for cygwin platform using the pthread interface.
66          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
67                <a href="https://github.com/boostorg/thread/pull/263" target="_top">https://github.com/boostorg/thread/pull/263</a>
68                Fix compilation of timed functions on Cygwin $ <a href="https://github.com/boostorg/thread/pull/262" target="_top">https://github.com/boostorg/thread/pull/262</a>
69                Fix MinGW warnings about violation of the strict aliasing rules
70              </li></ul></div>
71        </li>
72<li class="listitem">
73          <a href="https://github.com/boostorg/thread/pull/260" target="_top">https://github.com/boostorg/thread/pull/260</a>
74          Fix "interruption_point" defined twice.
75        </li>
76<li class="listitem">
77          <a href="https://github.com/boostorg/thread/pull/249" target="_top">https://github.com/boostorg/thread/pull/249</a>
78          Simplify TSS cleanup routines. Fixes #236
79        </li>
80</ul></div>
81<p>
82      <span class="bold"><strong>New Experimental Features:</strong></span>
83    </p>
84<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
85<li class="listitem">
86          Since BOOST_THREAD_VERSION 5, BOOST_THREAD_USES_EXECUTOR is defined by
87          default.
88        </li>
89<li class="listitem">
90          <a href="https://github.com/boostorg/thread/pull/266" target="_top">https://github.com/boostorg/thread/pull/266</a>
91          Remove linking with Boost.System
92        </li>
93</ul></div>
94<h4>
95<a name="thread.changes.h1"></a>
96      <span class="phrase"><a name="thread.changes.version_4_8_1___boost_1_67"></a></span><a class="link" href="changes.html#thread.changes.version_4_8_1___boost_1_67">Version
97      4.8.1 - boost 1.67</a>
98    </h4>
99<p>
100      <span class="bold"><strong>Know Bugs:</strong></span>
101    </p>
102<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
103<li class="listitem">
104          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
105          thread_specific_ptr + dlopen library causes a SIGSEGV.
106        </li>
107<li class="listitem">
108          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
109          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
110        </li>
111</ul></div>
112<p>
113      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
114      Know Bugs</a> to see the current state.
115    </p>
116<p>
117      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
118      master regression test</a> to see the last regression test snapshot.
119    </p>
120<p>
121      <span class="bold"><strong>Fixed Bugs:</strong></span>
122    </p>
123<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
124<li class="listitem">
125          <a href="https://github.com/boostorg/thread/issues/162" target="_top">#162</a>
126          fix as much time-related issues as possible and improve the QOI
127        </li>
128<li class="listitem">
129          <a href="https://github.com/boostorg/thread/issues/193" target="_top">#193</a>
130          future_then unit test contains two different implementations of do_continuation
131          function
132        </li>
133<li class="listitem">
134          <a href="https://github.com/boostorg/thread/issues/209" target="_top">#209</a>
135          Legal problem with <code class="computeroutput"><span class="identifier">win32</span><span class="special">/</span><span class="identifier">thread_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>
136        </li>
137</ul></div>
138<h4>
139<a name="thread.changes.h2"></a>
140      <span class="phrase"><a name="thread.changes.version_4_8_0___boost_1_66"></a></span><a class="link" href="changes.html#thread.changes.version_4_8_0___boost_1_66">Version
141      4.8.0 - boost 1.66</a>
142    </h4>
143<p>
144      <span class="bold"><strong>Know Bugs:</strong></span>
145    </p>
146<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
147<li class="listitem">
148          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
149          thread_specific_ptr + dlopen library causes a SIGSEGV.
150        </li>
151<li class="listitem">
152          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
153          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
154        </li>
155</ul></div>
156<p>
157      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
158      Know Bugs</a> to see the current state.
159    </p>
160<p>
161      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
162      master regression test</a> to see the last regression test snapshot.
163    </p>
164<p>
165      <span class="bold"><strong>Fixed Bugs:</strong></span>
166    </p>
167<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
168<li class="listitem">
169          <a href="http://svn.boost.org/trac/boost/ticket/12323" target="_top">#12323</a>
170          windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for
171          _pRawDllMainOrig
172        </li>
173<li class="listitem">
174          <a href="http://svn.boost.org/trac/boost/ticket/12730" target="_top">#12730</a>
175          windows - static threads library is incompatible with MSVC 2017 RC
176        </li>
177<li class="listitem">
178          <a href="http://svn.boost.org/trac/boost/ticket/12976" target="_top">#12976</a>
179          Boost Thread Executors documentation mistakes
180        </li>
181<li class="listitem">
182          <a href="http://svn.boost.org/trac/boost/ticket/12949" target="_top">#12949</a>
183          using sleep_for in a thread context without including boost/thread/thread.hpp
184          yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC
185          is defined
186        </li>
187<li class="listitem">
188          <a href="http://svn.boost.org/trac/boost/ticket/13019" target="_top">#13019</a>
189          ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete
190        </li>
191<li class="listitem">
192          <a href="http://svn.boost.org/trac/boost/ticket/13069" target="_top">#13069</a>
193          Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread
194          library
195        </li>
196<li class="listitem">
197          <a href="http://svn.boost.org/trac/boost/ticket/13163" target="_top">#13163</a>
198          boost::detail::heap_new does not have a variadic variant
199        </li>
200<li class="listitem">
201          <a href="http://svn.boost.org/trac/boost/ticket/13226" target="_top">#13226</a>
202          getpagesize() is deprecated since 199506L
203        </li>
204<li class="listitem">
205          <a href="https://github.com/boostorg/thread/issues/132" target="_top">#132</a>
206          VS 2017.4 Preview deadlocks on Test 10964
207        </li>
208<li class="listitem">
209          <a href="https://github.com/boostorg/thread/issues/133" target="_top">#133</a>
210          windows - Spurious timing test failures on windows
211        </li>
212<li class="listitem">
213          <a href="https://github.com/boostorg/thread/issues/134" target="_top">#134</a>
214          VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe
215        </li>
216<li class="listitem">
217          <a href="https://github.com/boostorg/thread/issues/135" target="_top">#135</a>
218          VS 2017.4 Preview test_scheduled_tp_p.exe deadlock
219        </li>
220<li class="listitem">
221          <a href="https://github.com/boostorg/thread/issues/136" target="_top">#136</a>
222          VS 2017.4 Preview test_scheduler_p.exe deadlock
223        </li>
224<li class="listitem">
225          <a href="https://github.com/boostorg/thread/issues/137" target="_top">#137</a>
226          VS 2017.4 Preview executor_ex.exe deadlock
227        </li>
228<li class="listitem">
229          <a href="https://github.com/boostorg/thread/issues/143" target="_top">#143</a>
230          Failures on msvc-12.0
231        </li>
232<li class="listitem">
233          <a href="https://github.com/boostorg/thread/issues/145" target="_top">#145</a>
234          Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS
235        </li>
236</ul></div>
237<p>
238      <span class="bold"><strong>New Experimental Features:</strong></span>
239    </p>
240<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
241          <a href="https://github.com/boostorg/thread/issues/116" target="_top">#116</a>
242          [Proposal] Add APIs for deferred set_value/exception
243        </li></ul></div>
244<h4>
245<a name="thread.changes.h3"></a>
246      <span class="phrase"><a name="thread.changes.version_4_7_5___boost_1_65_1"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_5___boost_1_65_1">Version
247      4.7.5 - boost 1.65.1</a>
248    </h4>
249<p>
250      <span class="bold"><strong>Fixed Bugs:</strong></span>
251    </p>
252<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
253          <a href="https://github.com/boostorg/thread/issues/130" target="_top">#130</a>
254          windows: Bug in boost::condition_variable on Windows
255        </li></ul></div>
256<h4>
257<a name="thread.changes.h4"></a>
258      <span class="phrase"><a name="thread.changes.version_4_7_4___boost_1_65"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_4___boost_1_65">Version
259      4.7.4 - boost 1.65</a>
260    </h4>
261<p>
262      <span class="bold"><strong>Fixed Bugs:</strong></span>
263    </p>
264<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
265<li class="listitem">
266          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
267          boost::thread::sleep() hangs if system time is rolled back
268        </li>
269<li class="listitem">
270          <a href="http://svn.boost.org/trac/boost/ticket/12519" target="_top">#12519</a>
271          boost::thread::try_join_for does not return after timeout
272        </li>
273<li class="listitem">
274          <a href="http://svn.boost.org/trac/boost/ticket/12874" target="_top">#12874</a>
275          future&lt;&gt; extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP
276        </li>
277<li class="listitem">
278          <a href="http://svn.boost.org/trac/boost/ticket/12888" target="_top">#12888</a>
279          Linking with boost thread does not work on mingw/gcc 4.4
280        </li>
281<li class="listitem">
282          <a href="http://svn.boost.org/trac/boost/ticket/12958" target="_top">#12958</a>
283          sync_bounded_queue::wait_pull_front( lve ) might throw
284        </li>
285<li class="listitem">
286          <a href="http://svn.boost.org/trac/boost/ticket/13077" target="_top">#13077</a>
287          Linking to static 64bit libboost_thread fails DLL initialization
288        </li>
289<li class="listitem">
290          <a href="http://svn.boost.org/trac/boost/ticket/13155" target="_top">#13155</a>
291          log doesn't build on a system with pthreads
292        </li>
293<li class="listitem">
294          <a href="https://github.com/boostorg/thread/issues/121" target="_top">#121</a>
295          on_tls_prepare is broken under VS2017
296        </li>
297</ul></div>
298<h4>
299<a name="thread.changes.h5"></a>
300      <span class="phrase"><a name="thread.changes.version_4_7_3___boost_1_64"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_3___boost_1_64">Version
301      4.7.3 - boost 1.64</a>
302    </h4>
303<p>
304      <span class="bold"><strong>Fixed Bugs:</strong></span>
305    </p>
306<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
307<li class="listitem">
308          <a href="https://github.com/boostorg/thread/issues/113" target="_top">#113</a>
309          Add a Thread template on all the scoped thread and thread guard classes
310        </li>
311<li class="listitem">
312          <a href="https://github.com/boostorg/thread/issues/117" target="_top">#117</a>
313          loop_executor should block on it's work_queue instead of polling
314        </li>
315<li class="listitem">
316          <a href="https://github.com/boostorg/thread/issues/119" target="_top">#119</a>
317          basic_condition_variable::relocker::~relocker can throw an exception
318        </li>
319</ul></div>
320<h4>
321<a name="thread.changes.h6"></a>
322      <span class="phrase"><a name="thread.changes.version_4_7_2___boost_1_63"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_2___boost_1_63">Version
323      4.7.2 - boost 1.63</a>
324    </h4>
325<p>
326      <span class="bold"><strong>Fixed Bugs:</strong></span>
327    </p>
328<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
329<li class="listitem">
330          fix boost::synchronized_value&lt;&gt;::load()
331        </li>
332<li class="listitem">
333          fix relational operators of boost::synchronized_value&lt;&gt;
334        </li>
335<li class="listitem">
336          fix compile failed with boost::user_scheduler
337        </li>
338<li class="listitem">
339          Fix minor possibility of loosing the notify
340        </li>
341</ul></div>
342<h4>
343<a name="thread.changes.h7"></a>
344      <span class="phrase"><a name="thread.changes.version_4_7_1___boost_1_62"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_1___boost_1_62">Version
345      4.7.1 - boost 1.62</a>
346    </h4>
347<p>
348      <span class="bold"><strong>Know Bugs:</strong></span>
349    </p>
350<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
351          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
352          thread_specific_ptr + dlopen library causes a SIGSEGV.
353        </li></ul></div>
354<p>
355      Please define BOOST_THREAD_PATCH to apply the patch that could unfortunately
356      results is a regression as described in <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>.
357    </p>
358<p>
359      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
360      Know Bugs</a> to see the current state.
361    </p>
362<p>
363      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
364      master regression test</a> to see the last regression test snapshot.
365    </p>
366<p>
367      <span class="bold"><strong>Fixed Bugs:</strong></span>
368    </p>
369<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
370<li class="listitem">
371          <a href="http://svn.boost.org/trac/boost/ticket/11097" target="_top">#11097</a>
372          test_scheduled_tp - ThreadSanitizer: heap-use-after-free
373        </li>
374<li class="listitem">
375          <a href="http://svn.boost.org/trac/boost/ticket/11951" target="_top">#11951</a>
376          Memory leak in boost::when_all
377        </li>
378<li class="listitem">
379          <a href="http://svn.boost.org/trac/boost/ticket/12102" target="_top">#12102</a>
380          condition_variable_fwd.hpp fails to compile when BOOST_THREAD_PROVIDES_INTERRUPTIONS
381          is disabled
382        </li>
383<li class="listitem">
384          <a href="http://svn.boost.org/trac/boost/ticket/12120" target="_top">#12120</a>
385          Performance improvement in thread/barrier.hpp
386        </li>
387<li class="listitem">
388          <a href="http://svn.boost.org/trac/boost/ticket/12146" target="_top">#12146</a>
389          make_exceptional_future is not mentioned in the docs
390        </li>
391<li class="listitem">
392          <a href="http://svn.boost.org/trac/boost/ticket/12202" target="_top">#12202</a>
393          shared_lock should be in shared_mutex header
394        </li>
395<li class="listitem">
396          <a href="http://svn.boost.org/trac/boost/ticket/12220" target="_top">#12220</a>
397          Memory leak in future::then()
398        </li>
399<li class="listitem">
400          <a href="http://svn.boost.org/trac/boost/ticket/12293" target="_top">#12293</a>
401          boost::future::then lambda called before future is ready.
402        </li>
403<li class="listitem">
404          <a href="http://svn.boost.org/trac/boost/ticket/12350" target="_top">#12350</a>
405          shared_mutex (pthreads) unlocked too early in unlock_shared()
406        </li>
407<li class="listitem">
408          <a href="http://svn.boost.org/trac/boost/ticket/12371" target="_top">#12371</a>
409          boost thread/future.hpp fails to build
410        </li>
411</ul></div>
412<p>
413      and several PR
414    </p>
415<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
416<li class="listitem">
417          #88 fix typos in boost::upgrade_lock
418        </li>
419<li class="listitem">
420          #89 fix a bug in upgrade_to_unique_lock&lt;&gt;::operator=()
421        </li>
422<li class="listitem">
423          #90 fix a bug in try_lock_wrapper&lt;&gt;::operator=()
424        </li>
425<li class="listitem">
426          #91 Add shared_lock_guard to the included lock types
427        </li>
428<li class="listitem">
429          #92 Fixed compilation with MSVC-8.
430        </li>
431<li class="listitem">
432          #93 Fix variable shadowing warnings (Clang)
433        </li>
434<li class="listitem">
435          #94 fix bugs in boost::barrier
436        </li>
437<li class="listitem">
438          #95 fix a mistake in boost::completion_latch
439        </li>
440<li class="listitem">
441          #96 rename async_func.hpp to invoker.hpp.
442        </li>
443<li class="listitem">
444          #97 fix a mistake in sync_timed_queue&lt;&gt;::pull_until()
445        </li>
446</ul></div>
447<h4>
448<a name="thread.changes.h8"></a>
449      <span class="phrase"><a name="thread.changes.version_4_7_0___boost_1_61"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_0___boost_1_61">Version
450      4.7.0 - boost 1.61</a>
451    </h4>
452<p>
453      <span class="bold"><strong>Know Bugs:</strong></span>
454    </p>
455<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
456          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
457          thread_specific_ptr + dlopen library causes a SIGSEGV.
458        </li></ul></div>
459<p>
460      Please define BOOST_THREAD_PATCH to apply the patch that could unfortunately
461      results is a regression as described in <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>.
462    </p>
463<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
464<li class="listitem">
465          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
466          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
467          API not available
468        </li>
469<li class="listitem">
470          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
471          wait_for_any hangs, if called with multiple copies of shared_future referencing
472          same task
473        </li>
474<li class="listitem">
475          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
476          Seg fault on thread join when llvm and libc++ are used
477        </li>
478</ul></div>
479<p>
480      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
481      Know Bugs</a> to see the current state.
482    </p>
483<p>
484      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
485      trunk regression test</a> to see the last regression test snapshot.
486    </p>
487<p>
488      <span class="bold"><strong>New Experimental Features:</strong></span>
489    </p>
490<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
491          <a href="http://svn.boost.org/trac/boost/ticket/11772" target="_top">#11772</a>
492          Add a launch::sync policy
493        </li></ul></div>
494<p>
495      <span class="bold"><strong>Fixed Bugs:</strong></span>
496    </p>
497<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
498<li class="listitem">
499          <a href="http://svn.boost.org/trac/boost/ticket/11494" target="_top">#11494</a>
500          boost::this_thread::yield() is marked as deprecated in the synopsis
501        </li>
502<li class="listitem">
503          <a href="http://svn.boost.org/trac/boost/ticket/11562" target="_top">#11562</a>
504          (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer
505          expires after computer time is set forward on Ubuntu 64-bit
506        </li>
507<li class="listitem">
508          <a href="http://svn.boost.org/trac/boost/ticket/12013" target="_top">#12013</a>
509          F_pass and FArgs_pass tests segfault
510        </li>
511<li class="listitem">
512          <a href="http://svn.boost.org/trac/boost/ticket/12036" target="_top">#12036</a>
513          boost::physical_concurrency always returns 0 if BOOST_USE_WINAPI_VERSION
514          is not defined
515        </li>
516</ul></div>
517<h4>
518<a name="thread.changes.h9"></a>
519      <span class="phrase"><a name="thread.changes.version_4_6_0___boost_1_60"></a></span><a class="link" href="changes.html#thread.changes.version_4_6_0___boost_1_60">Version
520      4.6.0 - boost 1.60</a>
521    </h4>
522<p>
523      <span class="bold"><strong>Know Bugs:</strong></span>
524    </p>
525<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
526<li class="listitem">
527          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
528          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
529          API not available
530        </li>
531<li class="listitem">
532          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
533          wait_for_any hangs, if called with multiple copies of shared_future referencing
534          same task
535        </li>
536<li class="listitem">
537          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
538          Seg fault on thread join when llvm and libc++ are used
539        </li>
540<li class="listitem">
541          <a href="http://svn.boost.org/trac/boost/ticket/10942" target="_top">#10942</a>
542          Boost.Thread fails to build on Cygwin.
543        </li>
544</ul></div>
545<p>
546      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
547      Know Bugs</a> to see the current state.
548    </p>
549<p>
550      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
551      trunk regression test</a> to see the last regression test snapshot.
552    </p>
553<p>
554      <span class="bold"><strong>New Experimental Features:</strong></span>
555    </p>
556<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
557<li class="listitem">
558          <a href="http://svn.boost.org/trac/boost/ticket/11231" target="_top">#11231</a>
559          Allow to set continuation future's destructor behavior to non-blocking
560        </li>
561<li class="listitem">
562          <a href="http://svn.boost.org/trac/boost/ticket/11424" target="_top">#11424</a>
563          Provide shared_timed_mutex as an alternative name for shared_mutex and
564          deprecate the use of shared_mutex as a timed mutex
565        </li>
566<li class="listitem">
567          <a href="http://svn.boost.org/trac/boost/ticket/11734" target="_top">#11734</a>
568          future::then(Cont) should be able to execute the continuation on undetermined
569          thread
570        </li>
571<li class="listitem">
572          <a href="http://svn.boost.org/trac/boost/ticket/11736" target="_top">#11736</a>
573          Allow to use launch::executor on future::then(launch::executor, cont)
574        </li>
575<li class="listitem">
576          <a href="http://svn.boost.org/trac/boost/ticket/11737" target="_top">#11737</a>
577          Add a launch::inherit policy that can be used on ::then() to use the policy
578          of the parent future
579        </li>
580</ul></div>
581<p>
582      <span class="bold"><strong>Fixed Bugs:</strong></span>
583    </p>
584<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
585<li class="listitem">
586          <a href="http://svn.boost.org/trac/boost/ticket/6377" target="_top">#6377</a>
587          Condition variable blocks when changing time
588        </li>
589<li class="listitem">
590          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
591          boost::thread::sleep() hangs if system time is rolled back
592        </li>
593<li class="listitem">
594          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
595          this_thread::sleep_for no longer uses steady_clock in thread
596        </li>
597<li class="listitem">
598          <a href="http://svn.boost.org/trac/boost/ticket/7720" target="_top">#7720</a>
599          exception lock_error while intensive locking/unlocking of mutex
600        </li>
601<li class="listitem">
602          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
603          test_latch fails often on clang-darwin-tot11
604        </li>
605<li class="listitem">
606          <a href="http://svn.boost.org/trac/boost/ticket/10788" target="_top">#10788</a>
607          GetLogicalProcessor isn't available for Windows platform less or equals
608          to 0x0502
609        </li>
610<li class="listitem">
611          <a href="http://svn.boost.org/trac/boost/ticket/11090" target="_top">#11090</a>
612          ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock)
613        </li>
614<li class="listitem">
615          <a href="http://svn.boost.org/trac/boost/ticket/11158" target="_top">#11158</a>
616          Pthread thread deadlock when faketime used
617        </li>
618<li class="listitem">
619          <a href="http://svn.boost.org/trac/boost/ticket/11174" target="_top">#11174</a>
620          boost::condition_variable::timed_wait with predicate unexpectedly wakes
621          up while should wait infinite
622        </li>
623<li class="listitem">
624          <a href="http://svn.boost.org/trac/boost/ticket/11185" target="_top">#11185</a>
625          Incorrect URL redirection
626        </li>
627<li class="listitem">
628          <a href="http://svn.boost.org/trac/boost/ticket/11192" target="_top">#11192</a>
629          boost::future&lt;&gt;::then() with an executor doesn't compile when the
630          callback returns a future
631        </li>
632<li class="listitem">
633          <a href="http://svn.boost.org/trac/boost/ticket/11250" target="_top">#11250</a>
634          future made from make_exceptional fails on assertion in destructor
635        </li>
636<li class="listitem">
637          <a href="http://svn.boost.org/trac/boost/ticket/11256" target="_top">#11256</a>
638          future&lt;&gt;::is_ready() == false in continuation function
639        </li>
640<li class="listitem">
641          <a href="http://svn.boost.org/trac/boost/ticket/11261" target="_top">#11261</a>
642          bad use of scoped threads in basic_thread_pool
643        </li>
644<li class="listitem">
645          <a href="http://svn.boost.org/trac/boost/ticket/11262" target="_top">#11262</a>
646          bad use of direct pointer in shared_state_nullary_task
647        </li>
648<li class="listitem">
649          <a href="http://svn.boost.org/trac/boost/ticket/11263" target="_top">#11263</a>
650          lock already locked lock
651        </li>
652<li class="listitem">
653          <a href="http://svn.boost.org/trac/boost/ticket/11266" target="_top">#11266</a>
654          boost::packaged_task has invalid variadic signature
655        </li>
656<li class="listitem">
657          <a href="http://svn.boost.org/trac/boost/ticket/11302" target="_top">#11302</a>
658          boost thread doesn't build with BOOST_THREAD_PATCH.
659        </li>
660<li class="listitem">
661          <a href="http://svn.boost.org/trac/boost/ticket/11322" target="_top">#11322</a>
662          sleep_for() nanoseconds overload will always return too early on windows
663        </li>
664<li class="listitem">
665          <a href="http://svn.boost.org/trac/boost/ticket/11329" target="_top">#11329</a>
666          using declarative for GetProcessHeap, .... fails
667        </li>
668<li class="listitem">
669          <a href="http://svn.boost.org/trac/boost/ticket/11368" target="_top">#11368</a>
670          boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh)
671        </li>
672<li class="listitem">
673          <a href="http://svn.boost.org/trac/boost/ticket/11377" target="_top">#11377</a>
674          Boost condition variable always waits for system clock deadline
675        </li>
676<li class="listitem">
677          <a href="http://svn.boost.org/trac/boost/ticket/11435" target="_top">#11435</a>
678          gcc compiler warning in future.hpp
679        </li>
680<li class="listitem">
681          <a href="http://svn.boost.org/trac/boost/ticket/11555" target="_top">#11555</a>
682          devector.hpp assumes allocator_traits_type is always present
683        </li>
684<li class="listitem">
685          <a href="http://svn.boost.org/trac/boost/ticket/11562" target="_top">#11562</a>
686          (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer
687          expires after computer time is set forward on Ubuntu 64-bit
688        </li>
689<li class="listitem">
690          <a href="http://svn.boost.org/trac/boost/ticket/11672" target="_top">#11672</a>
691          Thread: Should use unique_ptr, not auto_ptr
692        </li>
693<li class="listitem">
694          <a href="http://svn.boost.org/trac/boost/ticket/11688" target="_top">#11688</a>
695          thread::try_join_until: Avoid busy wait if system clock changes
696        </li>
697<li class="listitem">
698          <a href="http://svn.boost.org/trac/boost/ticket/11672" target="_top">#11716</a>
699          ::then(f) should inherit the parent Executor
700        </li>
701<li class="listitem">
702          <a href="http://svn.boost.org/trac/boost/ticket/11795" target="_top">#11795</a>
703          Incorrect version specification for documentation of thread destructor
704        </li>
705<li class="listitem">
706          <a href="http://svn.boost.org/trac/boost/ticket/11796" target="_top">#11796</a>
707          Thread move assignment operator, does not detach previous thread data
708        </li>
709<li class="listitem">
710          <a href="http://svn.boost.org/trac/boost/ticket/11817" target="_top">#11817</a>
711          'sync_queue_is_closed' was not declared in boost/thread/executors/thread_executor.hpp
712        </li>
713<li class="listitem">
714          <a href="http://svn.boost.org/trac/boost/ticket/11818" target="_top">#11818</a>
715          future.then will be blocked if promise is set after the invocation of then
716        </li>
717<li class="listitem">
718          <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>
719          Assertion failure from detached threads during shutdown
720        </li>
721</ul></div>
722<h4>
723<a name="thread.changes.h10"></a>
724      <span class="phrase"><a name="thread.changes.version_4_5_0___boost_1_58"></a></span><a class="link" href="changes.html#thread.changes.version_4_5_0___boost_1_58">Version
725      4.5.0 - boost 1.58</a>
726    </h4>
727<p>
728      <span class="bold"><strong>Know Bugs:</strong></span>
729    </p>
730<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
731<li class="listitem">
732          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
733          thread_specific_ptr + dlopen library causes a SIGSEGV.
734        </li>
735<li class="listitem">
736          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
737          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
738          API not available
739        </li>
740<li class="listitem">
741          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
742          wait_for_any hangs, if called with multiple copies of shared_future referencing
743          same task
744        </li>
745<li class="listitem">
746          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
747          Seg fault on thread join when llvm and libc++ are used
748        </li>
749<li class="listitem">
750          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
751          test_latch fails often on clang-darwin-tot11
752        </li>
753<li class="listitem">
754          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
755          ex_lambda_future fails on msvc-11.0
756        </li>
757<li class="listitem">
758          <a href="http://svn.boost.org/trac/boost/ticket/10942" target="_top">#10942</a>
759          Boost.Thread fails to build on Cygwin.
760        </li>
761</ul></div>
762<p>
763      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
764      Know Bugs</a> to see the current state.
765    </p>
766<p>
767      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
768      trunk regression test</a> to see the last regression test snapshot.
769    </p>
770<p>
771      <span class="bold"><strong>Sever limitations:</strong></span>
772    </p>
773<p>
774      There are some severe bugs that prevent the use of the library on concrete
775      contexts, in particular:
776    </p>
777<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
778          on thread specific storage that prevent the library to be used with dynamic
779          libraries ( <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>,
780          ),
781        </li></ul></div>
782<p>
783      <span class="bold"><strong>New Experimental Features:</strong></span>
784    </p>
785<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
786<li class="listitem">
787          <a href="http://svn.boost.org/trac/boost/ticket/9600" target="_top">#9600</a>
788          Async: Add task_region
789        </li>
790<li class="listitem">
791          <a href="http://svn.boost.org/trac/boost/ticket/10611" target="_top">#10611</a>
792          Add emplace promise::set_value and emplace make_ready_future
793        </li>
794<li class="listitem">
795          <a href="http://svn.boost.org/trac/boost/ticket/10826" target="_top">#10826</a>
796          Add scheduled executor operations
797        </li>
798<li class="listitem">
799          <a href="http://svn.boost.org/trac/boost/ticket/11048" target="_top">#11048</a>
800          Add a serial_executor based on continuations
801        </li>
802</ul></div>
803<p>
804      <span class="bold"><strong>Fixed Bugs:</strong></span>
805    </p>
806<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
807<li class="listitem">
808          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
809          boost::thread::sleep() hangs if system time is rolled back
810        </li>
811<li class="listitem">
812          <a href="http://svn.boost.org/trac/boost/ticket/10734" target="_top">#10734</a>
813          Submit method work differently on different executors, some throw exception
814          and some silently ignore error (thread_executor and inline_executor)
815        </li>
816<li class="listitem">
817          <a href="http://svn.boost.org/trac/boost/ticket/10736" target="_top">#10736</a>
818          Task exceptions silently ignored. I think std::terminate solution from
819          N3785 and std::thread is better choice and more consistent.
820        </li>
821<li class="listitem">
822          <a href="http://svn.boost.org/trac/boost/ticket/10737" target="_top">#10737</a>
823          In serial_executor we have infinite wait if task throw exception.
824        </li>
825<li class="listitem">
826          <a href="http://svn.boost.org/trac/boost/ticket/10822" target="_top">#10822</a>
827          Boost.Thread fails to compile on Android
828        </li>
829<li class="listitem">
830          <a href="http://svn.boost.org/trac/boost/ticket/10824" target="_top">#10824</a>
831          Boost.Thread 1.57 breaks Windows XP compatibility for SP2 and below.
832        </li>
833<li class="listitem">
834          <a href="http://svn.boost.org/trac/boost/ticket/10963" target="_top">#10963</a>
835          future&lt;future&lt;T&gt;&gt;::then Has No Implementation
836        </li>
837<li class="listitem">
838          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
839          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
840        </li>
841<li class="listitem">
842          <a href="http://svn.boost.org/trac/boost/ticket/10968" target="_top">#10968</a>
843          The futures returned by async() and future::then() are not blocking.
844        </li>
845<li class="listitem">
846          <a href="http://svn.boost.org/trac/boost/ticket/10971" target="_top">#10971</a>
847          shared_future::get()/get_or() must be const
848        </li>
849<li class="listitem">
850          <a href="http://svn.boost.org/trac/boost/ticket/10972" target="_top">#10972</a>
851          shared_future::then() can be called multiple times.
852        </li>
853<li class="listitem">
854          <a href="http://svn.boost.org/trac/boost/ticket/10979" target="_top">#10979</a>
855          Support T&amp; type deduction when the make_ready_future parameter is reference_wrapper&lt;T&gt;
856        </li>
857<li class="listitem">
858          <a href="http://svn.boost.org/trac/boost/ticket/10996" target="_top">#10996</a>
859          Thread physical_concurrency() is failing on Windows
860        </li>
861<li class="listitem">
862          <a href="http://svn.boost.org/trac/boost/ticket/11035" target="_top">#11035</a>
863          BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE not defined for Android
864        </li>
865<li class="listitem">
866          <a href="http://svn.boost.org/trac/boost/ticket/11053" target="_top">#11053</a>
867          The attached code results in a R6025 - pure virtual function call in run_thread_exit_callbacks
868        </li>
869</ul></div>
870<h4>
871<a name="thread.changes.h11"></a>
872      <span class="phrase"><a name="thread.changes.version_4_4_0___boost_1_57"></a></span><a class="link" href="changes.html#thread.changes.version_4_4_0___boost_1_57">Version
873      4.4.0 - boost 1.57</a>
874    </h4>
875<p>
876      <span class="bold"><strong>Know Bugs:</strong></span>
877    </p>
878<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
879<li class="listitem">
880          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
881          Application statically linked with Boost.Thread crashes when Google Desktop
882          is installed (Windows XP)
883        </li>
884<li class="listitem">
885          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
886          thread_specific_ptr + dlopen library causes a SIGSEGV.
887        </li>
888<li class="listitem">
889          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
890          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
891          API not available
892        </li>
893<li class="listitem">
894          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
895          Take care of c++std-lib-32966 issue
896        </li>
897<li class="listitem">
898          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
899          wait_for_any hangs, if called with multiple copies of shared_future referencing
900          same task
901        </li>
902<li class="listitem">
903          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
904          Seg fault on thread join when llvm and libc++ are used
905        </li>
906<li class="listitem">
907          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
908          test_latch fails often on clang-darwin-tot11
909        </li>
910<li class="listitem">
911          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
912          test_4648_lib fails on clang-darwin-asan11
913        </li>
914<li class="listitem">
915          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
916          ex_lambda_future fails on msvc-11.0
917        </li>
918<li class="listitem">
919          <a href="http://svn.boost.org/trac/boost/ticket/10537" target="_top">#10537</a>
920          Application crash on throw exception
921        </li>
922<li class="listitem">
923          <a href="http://svn.boost.org/trac/boost/ticket/10651" target="_top">#10651</a>
924          boost::thread leaks memory when using the MinGW compiler
925        </li>
926</ul></div>
927<p>
928      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
929      Know Bugs</a> to see the current state.
930    </p>
931<p>
932      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
933      trunk regression test</a> to see the last snapshot.
934    </p>
935<p>
936      <span class="bold"><strong>Sever limitations:</strong></span>
937    </p>
938<p>
939      There are some severe bugs that prevent the use of the library on concrete
940      contexts, in particular:
941    </p>
942<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
943          on thread specific storage that prevent the library to be used with dynamic
944          libraries,
945        </li></ul></div>
946<p>
947      <span class="bold"><strong>New Experimental Features:</strong></span>
948    </p>
949<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
950<li class="listitem">
951          <a href="http://svn.boost.org/trac/boost/ticket/6227" target="_top">#6227</a>
952          Synchro: Use of variadic templates on Generic Locking Algorithms on compilers
953          providing them
954        </li>
955<li class="listitem">
956          <a href="http://svn.boost.org/trac/boost/ticket/10298" target="_top">#10298</a>
957          Synchro: Added queue views.
958        </li>
959<li class="listitem">
960          <a href="http://svn.boost.org/trac/boost/ticket/10300" target="_top">#10300</a>
961          Async: Added generic_executor_ref.
962        </li>
963<li class="listitem">
964          <a href="http://svn.boost.org/trac/boost/ticket/10552" target="_top">#10552</a>
965          Add make_valid_future
966        </li>
967</ul></div>
968<p>
969      <span class="bold"><strong>Fixed Bugs:</strong></span>
970    </p>
971<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
972<li class="listitem">
973          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
974          call_once uses incorrect barrier intrinsic on Visual Studio
975        </li>
976<li class="listitem">
977          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
978          boost::thread::sleep() hangs if system time is rolled back
979        </li>
980<li class="listitem">
981          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
982          this_thread::sleep_for no longer uses steady_clock in thread
983        </li>
984<li class="listitem">
985          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
986          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
987          Invalid argument
988        </li>
989<li class="listitem">
990          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
991          future::async fails with terminate called throwing an exception when called
992          with a lambda - clang-darwin-asan11
993        </li>
994<li class="listitem">
995          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
996          test_4648_lib fails on clang-darwin-asan11
997        </li>
998<li class="listitem">
999          <a href="http://svn.boost.org/trac/boost/ticket/9425" target="_top">#9425</a>
1000          Boost promise &amp; future does not use supplied allocator for value storage
1001        </li>
1002<li class="listitem">
1003          <a href="http://svn.boost.org/trac/boost/ticket/9558" target="_top">#9558</a>
1004          future continuations unit test hangs in get()/pthread_cond_wait() on Mac
1005          10.7/32-bit/x86/darwin-4.2.1
1006        </li>
1007<li class="listitem">
1008          <a href="http://svn.boost.org/trac/boost/ticket/9787" target="_top">#9787</a>
1009          [windows] Small duration value passed down to basic_timed_mutex::try_lock_until
1010          and condition_variable::wait_until can cause infinite or near infinite
1011          wait for win32
1012        </li>
1013<li class="listitem">
1014          <a href="http://svn.boost.org/trac/boost/ticket/9880" target="_top">#9880</a>
1015          [windows] boost::condition_variable.timed_wait() exception if system time
1016          &lt; 1970
1017        </li>
1018<li class="listitem">
1019          <a href="http://svn.boost.org/trac/boost/ticket/10159" target="_top">#10159</a>
1020          GCC 4.4 error sorry, unimplemented
1021        </li>
1022<li class="listitem">
1023          <a href="http://svn.boost.org/trac/boost/ticket/10196" target="_top">#10196</a>
1024          thread_specific_ptr does not support void*
1025        </li>
1026<li class="listitem">
1027          <a href="http://svn.boost.org/trac/boost/ticket/10296" target="_top">#10296</a>
1028          Boost.Thread 1.56 rc1 does not compile on Mingw
1029        </li>
1030<li class="listitem">
1031          <a href="http://svn.boost.org/trac/boost/ticket/10297" target="_top">#10297</a>
1032          Boost.Thread 1.56 rc1 hangs when built with clang on armhf
1033        </li>
1034<li class="listitem">
1035          <a href="http://svn.boost.org/trac/boost/ticket/10340" target="_top">#10340</a>
1036          No boost::promise&lt;T&gt;::set_value(const T&amp;) overload present in
1037          C++03 mode
1038        </li>
1039<li class="listitem">
1040          <a href="http://svn.boost.org/trac/boost/ticket/10425" target="_top">#10425</a>
1041          Missing documentation for when_all/when_any.
1042        </li>
1043<li class="listitem">
1044          <a href="http://svn.boost.org/trac/boost/ticket/10426" target="_top">#10426</a>
1045          Take in account the deferred futures in when_all.
1046        </li>
1047<li class="listitem">
1048          <a href="http://svn.boost.org/trac/boost/ticket/10427" target="_top">#10427</a>
1049          Take in account the deferred and ready futures in when_any.
1050        </li>
1051<li class="listitem">
1052          <a href="http://svn.boost.org/trac/boost/ticket/10428" target="_top">#10428</a>
1053          Adapt to new unique_ptr interface in Boost.Move
1054        </li>
1055<li class="listitem">
1056          <a href="http://svn.boost.org/trac/boost/ticket/10465" target="_top">#10465</a>
1057          Missing implementation of when_all/when_any when the result is a tuple.
1058        </li>
1059<li class="listitem">
1060          <a href="http://svn.boost.org/trac/boost/ticket/10476" target="_top">#10476</a>
1061          classes using BOOST_THREAD_MOVABLE_ONLY&lt;T&gt; dont satisfy is_copy_constructible&lt;T&gt;::value
1062          == false
1063        </li>
1064<li class="listitem">
1065          <a href="http://svn.boost.org/trac/boost/ticket/10478" target="_top">#10478</a>
1066          Data race in boost/thread/future.hpp
1067        </li>
1068<li class="listitem">
1069          <a href="http://svn.boost.org/trac/boost/ticket/10529" target="_top">#10529</a>
1070          The pthread/condition_variable_any constructor reports incorrect error
1071          code for pthread_cond_init
1072        </li>
1073<li class="listitem">
1074          <a href="http://svn.boost.org/trac/boost/ticket/10563" target="_top">#10563</a>
1075          shared_future&lt;R&gt;::then should be const
1076        </li>
1077</ul></div>
1078<h4>
1079<a name="thread.changes.h12"></a>
1080      <span class="phrase"><a name="thread.changes.version_4_3_0___boost_1_56"></a></span><a class="link" href="changes.html#thread.changes.version_4_3_0___boost_1_56">Version
1081      4.3.0 - boost 1.56</a>
1082    </h4>
1083<p>
1084      <span class="bold"><strong>Know Bugs:</strong></span>
1085    </p>
1086<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1087<li class="listitem">
1088          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
1089          Application statically linked with Boost.Thread crashes when Google Desktop
1090          is installed (Windows XP)
1091        </li>
1092<li class="listitem">
1093          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
1094          thread_specific_ptr + dlopen library causes a SIGSEGV.
1095        </li>
1096<li class="listitem">
1097          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
1098          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
1099          API not available
1100        </li>
1101<li class="listitem">
1102          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
1103          call_once uses incorrect barrier intrinsic on Visual Studio
1104        </li>
1105<li class="listitem">
1106          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
1107          Take care of c++std-lib-32966 issue
1108        </li>
1109<li class="listitem">
1110          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
1111          wait_for_any hangs, if called with multiple copies of shared_future referencing
1112          same task
1113        </li>
1114<li class="listitem">
1115          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
1116          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
1117          Invalid argument
1118        </li>
1119<li class="listitem">
1120          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
1121          future::async fails with terminate called throwing an exception when called
1122          with a lambda - clang-darwin-asan11
1123        </li>
1124<li class="listitem">
1125          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
1126          test_4648_lib fails on clang-darwin-asan11
1127        </li>
1128<li class="listitem">
1129          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
1130          ex_lambda_future fails on msvc-11.0
1131        </li>
1132<li class="listitem">
1133          <a href="http://svn.boost.org/trac/boost/ticket/9425" target="_top">#9425</a>
1134          Boost promise &amp; future does not use supplied allocator for value storage
1135        </li>
1136<li class="listitem">
1137          <a href="http://svn.boost.org/trac/boost/ticket/9558" target="_top">#9558</a>
1138          future continuations unit test hangs in get()/pthread_cond_wait() on Mac
1139          10.7/32-bit/x86/darwin-4.2.1
1140        </li>
1141</ul></div>
1142<p>
1143      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
1144      Know Bugs</a> to see the current state.
1145    </p>
1146<p>
1147      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
1148      trunk regression test</a> to see the last snapshot.
1149    </p>
1150<p>
1151      <span class="bold"><strong>Sever limitations:</strong></span>
1152    </p>
1153<p>
1154      There are some severe bugs that prevent the use of the library on concrete
1155      contexts, in particular:
1156    </p>
1157<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1158<li class="listitem">
1159          on thread specific storage that prevent the library to be used with dynamic
1160          libraries,
1161        </li>
1162<li class="listitem">
1163          The experimental features of boost::future have some severe holes that
1164          make the program crash unexpectedly.
1165        </li>
1166</ul></div>
1167<p>
1168      <span class="bold"><strong>New Experimental Features:</strong></span>
1169    </p>
1170<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1171<li class="listitem">
1172          <a href="http://svn.boost.org/trac/boost/ticket/7446" target="_top">#7446</a>
1173          Async: Add when_any.
1174        </li>
1175<li class="listitem">
1176          <a href="http://svn.boost.org/trac/boost/ticket/7447" target="_top">#7447</a>
1177          Async: Add when_all.
1178        </li>
1179<li class="listitem">
1180          <a href="http://svn.boost.org/trac/boost/ticket/7448" target="_top">#7448</a>
1181          Async: Add async taking a scheduler parameter.
1182        </li>
1183<li class="listitem">
1184          <a href="http://svn.boost.org/trac/boost/ticket/8274" target="_top">#8274</a>
1185          Synchro: Add concurrent queue
1186        </li>
1187<li class="listitem">
1188          <a href="http://svn.boost.org/trac/boost/ticket/8518" target="_top">#8518</a>
1189          Synchro: Add a latch class.
1190        </li>
1191<li class="listitem">
1192          <a href="http://svn.boost.org/trac/boost/ticket/8513" target="_top">#8513</a>
1193          Async: Add a basic thread_pool executor.
1194        </li>
1195<li class="listitem">
1196          <a href="http://svn.boost.org/trac/boost/ticket/8516" target="_top">#8516</a>
1197          Async: Add future/shared_future::then taking a scheduler as parameter.
1198        </li>
1199</ul></div>
1200<p>
1201      <span class="bold"><strong>Fixed Bugs:</strong></span>
1202    </p>
1203<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1204<li class="listitem">
1205          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
1206          prefer GetTickCount64 over GetTickCount
1207        </li>
1208<li class="listitem">
1209          <a href="http://svn.boost.org/trac/boost/ticket/9333" target="_top">#9333</a>
1210          ex_scoped_thread compile fails on msvc-12.0
1211        </li>
1212<li class="listitem">
1213          <a href="http://svn.boost.org/trac/boost/ticket/9366" target="_top">#9366</a>
1214          async(Executor, ...) fails to compile with msvc-10,11,12
1215        </li>
1216<li class="listitem">
1217          <a href="http://svn.boost.org/trac/boost/ticket/9402" target="_top">#9402</a>
1218          test_excutor regression on msvc-10,11,12
1219        </li>
1220<li class="listitem">
1221          <a href="http://svn.boost.org/trac/boost/ticket/9404" target="_top">#9404</a>
1222          ex_make_future regression error
1223        </li>
1224<li class="listitem">
1225          <a href="http://svn.boost.org/trac/boost/ticket/9471" target="_top">#9471</a>
1226          Synchronization documentation nits
1227        </li>
1228<li class="listitem">
1229          <a href="http://svn.boost.org/trac/boost/ticket/9535" target="_top">#9535</a>
1230          Missing exception safety might result in crash
1231        </li>
1232<li class="listitem">
1233          <a href="http://svn.boost.org/trac/boost/ticket/9618" target="_top">#9618</a>
1234          try_join_for problem: program is not terminate.
1235        </li>
1236<li class="listitem">
1237          <a href="http://svn.boost.org/trac/boost/ticket/9673" target="_top">#9673</a>
1238          thread compilation with MingW/gcc on Windows gives errors
1239        </li>
1240<li class="listitem">
1241          <a href="http://svn.boost.org/trac/boost/ticket/9708" target="_top">#9708</a>
1242          boost::condition_variable::timed_wait unexpectedly wakes up while should
1243          wait infinite
1244        </li>
1245<li class="listitem">
1246          <a href="http://svn.boost.org/trac/boost/ticket/9711" target="_top">#9711</a>
1247          future continuation called twice
1248        </li>
1249</ul></div>
1250<h4>
1251<a name="thread.changes.h13"></a>
1252      <span class="phrase"><a name="thread.changes.version_4_2_0___boost_1_55"></a></span><a class="link" href="changes.html#thread.changes.version_4_2_0___boost_1_55">Version
1253      4.2.0 - boost 1.55</a>
1254    </h4>
1255<p>
1256      <span class="bold"><strong>Know Bugs:</strong></span>
1257    </p>
1258<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1259<li class="listitem">
1260          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
1261          Application statically linked with Boost.Thread crashes when Google Desktop
1262          is installed (Windows XP)
1263        </li>
1264<li class="listitem">
1265          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
1266          thread_specific_ptr + dlopen library causes a SIGSEGV.
1267        </li>
1268<li class="listitem">
1269          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
1270          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
1271          API not available
1272        </li>
1273<li class="listitem">
1274          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
1275          call_once uses incorrect barrier intrinsic on Visual Studio
1276        </li>
1277<li class="listitem">
1278          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
1279          Take care of c++std-lib-32966 issue
1280        </li>
1281<li class="listitem">
1282          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
1283          wait_for_any hangs, if called with multiple copies of shared_future referencing
1284          same task
1285        </li>
1286<li class="listitem">
1287          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
1288          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
1289          Invalid argument
1290        </li>
1291<li class="listitem">
1292          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
1293          future::async fails with terminate called throwing an exception when called
1294          with a lambda - clang-darwin-asan11
1295        </li>
1296<li class="listitem">
1297          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
1298          ex_lambda_future fails on msvc-11.0
1299        </li>
1300<li class="listitem">
1301          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
1302          test_4648_lib fails on clang-darwin-asan11
1303        </li>
1304</ul></div>
1305<p>
1306      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
1307      trunk regression test</a> to see the current state.
1308    </p>
1309<p>
1310      <span class="bold"><strong>Sever limitations:</strong></span>
1311    </p>
1312<p>
1313      There are some severe bugs that prevent the use of the library on concrete
1314      contexts, in particular:
1315    </p>
1316<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1317<li class="listitem">
1318          on thread specific storage that prevent the library to be used with dynamic
1319          libraries,
1320        </li>
1321<li class="listitem">
1322          The experimental features of boost::future have some severe holes that
1323          make the program crash unexpectedly.
1324        </li>
1325</ul></div>
1326<p>
1327      <span class="bold"><strong>New Features:</strong></span>
1328    </p>
1329<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1330<li class="listitem">
1331          <a href="http://svn.boost.org/trac/boost/ticket/8519" target="_top">#8519</a>
1332          Synchro: Update class barrier with a completion function.
1333        </li>
1334<li class="listitem">
1335          <a href="http://svn.boost.org/trac/boost/ticket/8515" target="_top">#8515</a>
1336          Async: Add shared_future::then.
1337        </li>
1338<li class="listitem">
1339          <a href="http://svn.boost.org/trac/boost/ticket/8519" target="_top">#8519</a>
1340          Synchro: Update class barrier with a completion function
1341        </li>
1342<li class="listitem">
1343          <a href="http://svn.boost.org/trac/boost/ticket/8615" target="_top">#8615</a>
1344          Async: Replace make_future/make_shared_future by make_ready_future.
1345        </li>
1346<li class="listitem">
1347          <a href="http://svn.boost.org/trac/boost/ticket/8627" target="_top">#8627</a>
1348          Async: Add future&lt;&gt;::unwrap and unwrapping constructor.
1349        </li>
1350<li class="listitem">
1351          <a href="http://svn.boost.org/trac/boost/ticket/8677" target="_top">#8677</a>
1352          Async: Add future&lt;&gt;::get_or.
1353        </li>
1354<li class="listitem">
1355          <a href="http://svn.boost.org/trac/boost/ticket/8678" target="_top">#8678</a>
1356          Async: Add future&lt;&gt;::fallback_to.
1357        </li>
1358<li class="listitem">
1359          <a href="http://svn.boost.org/trac/boost/ticket/8891" target="_top">#8891</a>
1360          upgrade_to_unique_lock: missing mutex() function.
1361        </li>
1362<li class="listitem">
1363          <a href="http://svn.boost.org/trac/boost/ticket/8955" target="_top">#8955</a>
1364          Request for more efficient way to get exception_ptr from future.
1365        </li>
1366</ul></div>
1367<p>
1368      <span class="bold"><strong>Fixed Bugs:</strong></span>
1369    </p>
1370<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1371<li class="listitem">
1372          <a href="http://svn.boost.org/trac/boost/ticket/7461" target="_top">#7461</a>
1373          detail::win32::ReleaseSemaphore may be called with count_to_release equal
1374          to 0
1375        </li>
1376<li class="listitem">
1377          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
1378          prefer GetTickCount64 over GetTickCount
1379        </li>
1380<li class="listitem">
1381          <a href="http://svn.boost.org/trac/boost/ticket/8768" target="_top">#8768</a>
1382          win32 condition_variable::wait_until infinite wait in rare cases.
1383        </li>
1384<li class="listitem">
1385          <a href="http://svn.boost.org/trac/boost/ticket/8817" target="_top">#8817</a>
1386          Boost Thread Windows CE _createthreadex handling breaks mingw w64.
1387        </li>
1388<li class="listitem">
1389          <a href="http://svn.boost.org/trac/boost/ticket/8943" target="_top">#8943</a>
1390          Failed to compile code using boost::call_once with Intel C++ Composer XE
1391          2013 on Windows.
1392        </li>
1393<li class="listitem">
1394          <a href="http://svn.boost.org/trac/boost/ticket/8931" target="_top">#8931</a>
1395          Typos in external_locking reference.
1396        </li>
1397<li class="listitem">
1398          <a href="http://svn.boost.org/trac/boost/ticket/9029" target="_top">#9029</a>
1399          Misprint in documentation.
1400        </li>
1401<li class="listitem">
1402          <a href="http://svn.boost.org/trac/boost/ticket/9037" target="_top">#9037</a>
1403          gcc -Wshadow gives warnings in condition_variable{,_fwd}.hpp.
1404        </li>
1405<li class="listitem">
1406          <a href="http://svn.boost.org/trac/boost/ticket/9041" target="_top">#9041</a>
1407          Boost.Thread DSO's may need to link with Boost.Atomic.
1408        </li>
1409<li class="listitem">
1410          <a href="http://svn.boost.org/trac/boost/ticket/9048" target="_top">#9048</a>
1411          boost::scoped_thread useless ctor with variadic template arguments.
1412        </li>
1413<li class="listitem">
1414          <a href="http://svn.boost.org/trac/boost/ticket/9079" target="_top">#9079</a>
1415          Condition variable will wait forever for some timepoint values (Win).
1416        </li>
1417</ul></div>
1418<h4>
1419<a name="thread.changes.h14"></a>
1420      <span class="phrase"><a name="thread.changes.version_4_1_0___boost_1_54"></a></span><a class="link" href="changes.html#thread.changes.version_4_1_0___boost_1_54">Version
1421      4.1.0 - boost 1.54</a>
1422    </h4>
1423<p>
1424      <span class="bold"><strong>New Features:</strong></span>
1425    </p>
1426<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1427<li class="listitem">
1428          <a href="http://svn.boost.org/trac/boost/ticket/7285" target="_top">#7285</a>
1429          C++11 compliance: Allow to pass movable arguments for call_once.
1430        </li>
1431<li class="listitem">
1432          <a href="http://svn.boost.org/trac/boost/ticket/7445" target="_top">#7445</a>
1433          Async: Add future&lt;&gt;.then
1434        </li>
1435<li class="listitem">
1436          <a href="http://svn.boost.org/trac/boost/ticket/7449" target="_top">#7449</a>
1437          Synchro: Add a synchronized value class
1438        </li>
1439</ul></div>
1440<p>
1441      <span class="bold"><strong>Fixed Bugs:</strong></span>
1442    </p>
1443<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1444<li class="listitem">
1445          <a href="http://svn.boost.org/trac/boost/ticket/4878" target="_top">#4878</a>
1446          MinGW 4.5.0 undefined reference to bool interruptible_wait(detail::win32::handle
1447          handle_to_wait_for,detail::t imeout target_time).
1448        </li>
1449<li class="listitem">
1450          <a href="http://svn.boost.org/trac/boost/ticket/4882" target="_top">#4882</a>
1451          Win32 shared_mutex does not handle timeouts correctly.
1452        </li>
1453<li class="listitem">
1454          <a href="http://svn.boost.org/trac/boost/ticket/5752" target="_top">#5752</a>
1455          boost::call_once() is unreliable on some platforms
1456        </li>
1457<li class="listitem">
1458          <a href="http://svn.boost.org/trac/boost/ticket/6652" target="_top">#6652</a>
1459          Boost.Thread shared_mutex.hpp:50:99: warning: dereferencing type-punned
1460          pointer will break strict-aliasing rules <span class="strikethrough">Wstrict-aliasing</span>
1461        </li>
1462<li class="listitem">
1463          <a href="http://svn.boost.org/trac/boost/ticket/6843" target="_top">#6843</a>
1464          [Intel C++] Compile Errors with '#include &lt;atomic&gt;'
1465        </li>
1466<li class="listitem">
1467          <a href="http://svn.boost.org/trac/boost/ticket/6966" target="_top">#6966</a>
1468          future boost::future_category inconsistent dll linkage
1469        </li>
1470<li class="listitem">
1471          <a href="http://svn.boost.org/trac/boost/ticket/7720" target="_top">#7720</a>
1472          exception lock_error while intensive locking/unlocking of mutex
1473        </li>
1474<li class="listitem">
1475          <a href="http://svn.boost.org/trac/boost/ticket/7755" target="_top">#7755</a>
1476          Thread: deadlock with shared_mutex on Windows
1477        </li>
1478<li class="listitem">
1479          <a href="http://svn.boost.org/trac/boost/ticket/7980" target="_top">#7980</a>
1480          Build error: msvc-11.0 and BOOST_THREAD_DONT_USE_DATETIME
1481        </li>
1482<li class="listitem">
1483          <a href="http://svn.boost.org/trac/boost/ticket/7982" target="_top">#7982</a>
1484          pthread_delay_np() parm compile error on AIX
1485        </li>
1486<li class="listitem">
1487          <a href="http://svn.boost.org/trac/boost/ticket/8027" target="_top">#8027</a>
1488          thread library fails to compile with Visual Studio 2003
1489        </li>
1490<li class="listitem">
1491          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
1492          prefer GetTickCount64 over GetTickCount
1493        </li>
1494<li class="listitem">
1495          <a href="http://svn.boost.org/trac/boost/ticket/8136" target="_top">#8136</a>
1496          boost::this_thread::sleep_for() sleeps longer than it should in Windows
1497        </li>
1498<li class="listitem">
1499          <a href="http://svn.boost.org/trac/boost/ticket/8212" target="_top">#8212</a>
1500          Boost thread compilation error on Solaris 10
1501        </li>
1502<li class="listitem">
1503          <a href="http://svn.boost.org/trac/boost/ticket/8237" target="_top">#8237</a>
1504          fix documentation for 'thread_group'
1505        </li>
1506<li class="listitem">
1507          <a href="http://svn.boost.org/trac/boost/ticket/8239" target="_top">#8239</a>
1508          barrier::wait() not marked as interruption_point
1509        </li>
1510<li class="listitem">
1511          <a href="http://svn.boost.org/trac/boost/ticket/8323" target="_top">#8323</a>
1512          boost::thread::try_join_for/try_join_until may block indefinitely due to
1513          a combination of problems in Boost.Thread and Boost.Chrono
1514        </li>
1515<li class="listitem">
1516          <a href="http://svn.boost.org/trac/boost/ticket/8337" target="_top">#8337</a>
1517          The internal representation of "std::string(this-&gt;code()-&gt;message())"
1518          escapes, but is destroyed when it exits scope.
1519        </li>
1520<li class="listitem">
1521          <a href="http://svn.boost.org/trac/boost/ticket/8371" target="_top">#8371</a>
1522          C++11 once_flag enabled when constexpr is not available
1523        </li>
1524<li class="listitem">
1525          <a href="http://svn.boost.org/trac/boost/ticket/8422" target="_top">#8422</a>
1526          Assertion in win32::WaitForSingleObject()
1527        </li>
1528<li class="listitem">
1529          <a href="http://svn.boost.org/trac/boost/ticket/8443" target="_top">#8443</a>
1530          Header file inclusion order may cause crashes
1531        </li>
1532<li class="listitem">
1533          <a href="http://svn.boost.org/trac/boost/ticket/8451" target="_top">#8451</a>
1534          Missing documented function 'boost::scoped_thread::joinable'
1535        </li>
1536<li class="listitem">
1537          <a href="http://svn.boost.org/trac/boost/ticket/8458" target="_top">#8458</a>
1538          -DBOOST_THREAD_DONT_USE_CHRONO in thread.obj.rsp but not explicitly set
1539        </li>
1540<li class="listitem">
1541          <a href="http://svn.boost.org/trac/boost/ticket/8530" target="_top">#8530</a>
1542          [Coverity] Unused variable thread_handle, uninitialized variable cond_mutex
1543          in thread/pthread/thread_data.hpp
1544        </li>
1545<li class="listitem">
1546          <a href="http://svn.boost.org/trac/boost/ticket/8550" target="_top">#8550</a>
1547          static linking of Boost.Thread with an MFC-Dll
1548        </li>
1549<li class="listitem">
1550          <a href="http://svn.boost.org/trac/boost/ticket/8576" target="_top">#8576</a>
1551          "sur parolle" should be "sur parole".
1552        </li>
1553<li class="listitem">
1554          <a href="http://svn.boost.org/trac/boost/ticket/8596" target="_top">#8596</a>
1555          With C++0x enabled, boost::packaged_task stores a reference to function
1556          objects, instead of a copy.
1557        </li>
1558<li class="listitem">
1559          <a href="http://svn.boost.org/trac/boost/ticket/8626" target="_top">#8626</a>
1560          Reintroduce BOOST_VERIFY on pthread_mutex_destroy return type
1561        </li>
1562<li class="listitem">
1563          <a href="http://svn.boost.org/trac/boost/ticket/8645" target="_top">#8645</a>
1564          Typo in Strict lock definition
1565        </li>
1566<li class="listitem">
1567          <a href="http://svn.boost.org/trac/boost/ticket/8671" target="_top">#8671</a>
1568          promise: set_..._at_thread_exit
1569        </li>
1570<li class="listitem">
1571          <a href="http://svn.boost.org/trac/boost/ticket/8672" target="_top">#8672</a>
1572          future&lt;&gt;::then(void()) doesn't works
1573        </li>
1574<li class="listitem">
1575          <a href="http://svn.boost.org/trac/boost/ticket/8674" target="_top">#8674</a>
1576          Futures as local named objects can't be returned with implicit move.
1577        </li>
1578</ul></div>
1579<h4>
1580<a name="thread.changes.h15"></a>
1581      <span class="phrase"><a name="thread.changes.version_4_0_0___boost_1_53"></a></span><a class="link" href="changes.html#thread.changes.version_4_0_0___boost_1_53">Version
1582      4.0.0 - boost 1.53</a>
1583    </h4>
1584<p>
1585      <span class="bold"><strong>Deprecated features:</strong></span>
1586    </p>
1587<div class="warning"><table border="0" summary="Warning">
1588<tr>
1589<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../doc/src/images/warning.png"></td>
1590<th align="left">Warning</th>
1591</tr>
1592<tr><td align="left" valign="top"><p>
1593        Deprecated features since boost 1.53 will be available only until boost 1.58.
1594      </p></td></tr>
1595</table></div>
1596<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1597<li class="listitem">
1598          C++11 compliance: packaged_task&lt;R&gt; is deprecated, use instead packaged_task&lt;R()&gt;.
1599          See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK and BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK
1600        </li>
1601<li class="listitem">
1602          <a href="http://svn.boost.org/trac/boost/ticket/7537" target="_top">#7537</a>
1603          deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition
1604        </li>
1605</ul></div>
1606<p>
1607      <span class="bold"><strong>New Features:</strong></span>
1608    </p>
1609<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1610<li class="listitem">
1611          <a href="http://svn.boost.org/trac/boost/ticket/6270" target="_top">#6270</a>
1612          c++11 compliance: Add thread constructor from movable callable and movable
1613          arguments Provided when BOOST_THREAD_PROVIDES_VARIADIC_THREAD is defined
1614          (Default value from Boost 1.55): See BOOST_THREAD_PROVIDES_VARIADIC_THREAD
1615          and BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD.
1616        </li>
1617<li class="listitem">
1618          <a href="http://svn.boost.org/trac/boost/ticket/7279" target="_top">#7279</a>
1619          C++11 compliance: Add noexcept in system related functions
1620        </li>
1621<li class="listitem">
1622          <a href="http://svn.boost.org/trac/boost/ticket/7280" target="_top">#7280</a>
1623          C++11 compliance: Add promise::...at_thread_exit functions
1624        </li>
1625<li class="listitem">
1626          <a href="http://svn.boost.org/trac/boost/ticket/7281" target="_top">#7281</a>
1627          C++11 compliance: Add ArgTypes to packaged_task template. Provided when
1628          BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK is defined (Default value
1629          from Boost 1.55). See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK and
1630          BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK.
1631        </li>
1632<li class="listitem">
1633          <a href="http://svn.boost.org/trac/boost/ticket/7282" target="_top">#7282</a>
1634          C++11 compliance: Add packaged_task::make_ready_at_thread_exit function
1635        </li>
1636<li class="listitem">
1637          <a href="http://svn.boost.org/trac/boost/ticket/7285" target="_top">#7285</a>
1638          C++11 compliance: Allow to pass movable arguments for call_once
1639        </li>
1640<li class="listitem">
1641          <a href="http://svn.boost.org/trac/boost/ticket/7412" target="_top">#7412</a>
1642          C++11 compliance: Add async from movable callable and movable arguments
1643          Provided when BOOST_THREAD_PROVIDES_VARIADIC_THREAD and BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
1644          are defined (Default value from Boost 1.55): See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
1645          and BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK, BOOST_THREAD_PROVIDES_VARIADIC_THREAD
1646          and BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD.
1647        </li>
1648<li class="listitem">
1649          <a href="http://svn.boost.org/trac/boost/ticket/7413" target="_top">#7413</a>
1650          C++11 compliance: Add async when the launch policy is deferred.
1651        </li>
1652<li class="listitem">
1653          <a href="http://svn.boost.org/trac/boost/ticket/7414" target="_top">#7414</a>
1654          C++11 compliance: future::get post-condition should be valid()==false.
1655        </li>
1656<li class="listitem">
1657          <a href="http://svn.boost.org/trac/boost/ticket/7422" target="_top">#7422</a>
1658          Provide a condition variable with zero-overhead performance penality.
1659        </li>
1660<li class="listitem">
1661          <a href="http://svn.boost.org/trac/boost/ticket/7414" target="_top">#7444</a>
1662          Async: Add make_future/make_shared_future.
1663        </li>
1664<li class="listitem">
1665          <a href="http://svn.boost.org/trac/boost/ticket/7540" target="_top">#7540</a>
1666          Threads: Add a helper class that join a thread on destruction.
1667        </li>
1668<li class="listitem">
1669          <a href="http://svn.boost.org/trac/boost/ticket/7541" target="_top">#7541</a>
1670          Threads: Add a thread wrapper class that joins on destruction.
1671        </li>
1672<li class="listitem">
1673          <a href="http://svn.boost.org/trac/boost/ticket/7575" target="_top">#7575</a>
1674          C++11 compliance: A future created by async should "join" in
1675          the destructor.
1676        </li>
1677<li class="listitem">
1678          <a href="http://svn.boost.org/trac/boost/ticket/7587" target="_top">#7587</a>
1679          Synchro: Add strict_lock and nested_strict_lock.
1680        </li>
1681<li class="listitem">
1682          <a href="http://svn.boost.org/trac/boost/ticket/7588" target="_top">#7588</a>
1683          Synchro: Split the locks.hpp in several files to limit dependencies.
1684        </li>
1685<li class="listitem">
1686          <a href="http://svn.boost.org/trac/boost/ticket/7590" target="_top">#7590</a>
1687          Synchro: Add lockable concept checkers based on Boost.ConceptCheck.
1688        </li>
1689<li class="listitem">
1690          <a href="http://svn.boost.org/trac/boost/ticket/7591" target="_top">#7591</a>
1691          Add lockable traits that can be used with enable_if.
1692        </li>
1693<li class="listitem">
1694          <a href="http://svn.boost.org/trac/boost/ticket/7592" target="_top">#7592</a>
1695          Synchro: Add a null_mutex that is a no-op and that is a model of UpgardeLockable.
1696        </li>
1697<li class="listitem">
1698          <a href="http://svn.boost.org/trac/boost/ticket/7593" target="_top">#7593</a>
1699          Synchro: Add a externally_locked class.
1700        </li>
1701<li class="listitem">
1702          <a href="http://svn.boost.org/trac/boost/ticket/7590" target="_top">#7594</a>
1703          Threads: Allow to disable thread interruptions.
1704        </li>
1705</ul></div>
1706<p>
1707      <span class="bold"><strong>Fixed Bugs:</strong></span>
1708    </p>
1709<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1710<li class="listitem">
1711          <a href="http://svn.boost.org/trac/boost/ticket/5752" target="_top">#5752</a>
1712          boost::call_once() is unreliable on some platforms
1713        </li>
1714<li class="listitem">
1715          <a href="http://svn.boost.org/trac/boost/ticket/7464" target="_top">#7464</a>
1716          BOOST_TEST(n_alive == 1); fails due to race condition in a regression test
1717          tool.
1718        </li>
1719<li class="listitem">
1720          <a href="http://svn.boost.org/trac/boost/ticket/7657" target="_top">#7657</a>
1721          Serious performance and memory consumption hit if condition_variable methods
1722          condition notify_one or notify_all is used repeatedly.
1723        </li>
1724<li class="listitem">
1725          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
1726          this_thread::sleep_for no longer uses steady_clock in thread.
1727        </li>
1728<li class="listitem">
1729          <a href="http://svn.boost.org/trac/boost/ticket/7668" target="_top">#7668</a>
1730          thread_group::join_all() should check whether its threads are joinable.
1731        </li>
1732<li class="listitem">
1733          <a href="http://svn.boost.org/trac/boost/ticket/7669" target="_top">#7669</a>
1734          thread_group::join_all() should catch resource_deadlock_would_occur.
1735        </li>
1736<li class="listitem">
1737          <a href="http://svn.boost.org/trac/boost/ticket/7671" target="_top">#7671</a>
1738          Error including boost/thread.hpp header on iOS.
1739        </li>
1740<li class="listitem">
1741          <a href="http://svn.boost.org/trac/boost/ticket/7672" target="_top">#7672</a>
1742          lockable_traits.hpp syntax error: "defined" token misspelled.
1743        </li>
1744<li class="listitem">
1745          <a href="http://svn.boost.org/trac/boost/ticket/7798" target="_top">#7798</a>
1746          boost::future set_wait_callback thread safety issues.
1747        </li>
1748<li class="listitem">
1749          <a href="http://svn.boost.org/trac/boost/ticket/7808" target="_top">#7808</a>
1750          Incorrect description of effects for this_thread::sleep_for and this_thread::sleep_until.
1751        </li>
1752<li class="listitem">
1753          <a href="http://svn.boost.org/trac/boost/ticket/7812" target="_top">#7812</a>
1754          Returns: cv_status::no_timeout if the call is returning because the time
1755          period specified by rel_time has elapsed, cv_status::timeout otherwise.
1756        </li>
1757<li class="listitem">
1758          <a href="http://svn.boost.org/trac/boost/ticket/7874" target="_top">#7874</a>
1759          compile warning: thread.hpp:342: warning: type attributes are honored only
1760          at type definition.
1761        </li>
1762<li class="listitem">
1763          <a href="http://svn.boost.org/trac/boost/ticket/7875" target="_top">#7875</a>
1764          BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not be enabled
1765          by default.
1766        </li>
1767<li class="listitem">
1768          <a href="http://svn.boost.org/trac/boost/ticket/7882" target="_top">#7882</a>
1769          wrong exception text from condition_variable::wait(unique_lock&lt;mutex&gt;&amp;).
1770        </li>
1771<li class="listitem">
1772          <a href="http://svn.boost.org/trac/boost/ticket/7890" target="_top">#7890</a>
1773          thread::do_try_join_until() is missing a return type.
1774        </li>
1775</ul></div>
1776<h4>
1777<a name="thread.changes.h16"></a>
1778      <span class="phrase"><a name="thread.changes.version_3_1_0___boost_1_52"></a></span><a class="link" href="changes.html#thread.changes.version_3_1_0___boost_1_52">Version
1779      3.1.0 - boost 1.52</a>
1780    </h4>
1781<p>
1782      Deprecated Features:
1783    </p>
1784<p>
1785      Deprecated features since boost 1.50 available only until boost 1.55:
1786    </p>
1787<p>
1788      These deprecated features will be provided by default up to boost 1.52. If
1789      you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0.
1790      Since 1.53 these features will not be included any more by default. Since this
1791      version, if you want to include the deprecated features yet you could define
1792      BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features
1793      will be only available until boost 1.55, that is you have yet 1 year to move
1794      to the new features.
1795    </p>
1796<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1797          Time related functions don't using the Boost.Chrono library, use the chrono
1798          overloads instead.
1799        </li></ul></div>
1800<p>
1801      Breaking changes when BOOST_THREAD_VERSION==3 (Default value since Boost 1.53):
1802    </p>
1803<p>
1804      There are some new features which share the same interface but with different
1805      behavior. These breaking features are provided by default when BOOST_THREAD_VERSION
1806      is 3, but the user can however choose the version 2 behavior by defining the
1807      corresponding macro. As for the deprecated features, these broken features
1808      will be only available until boost 1.55.
1809    </p>
1810<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1811<li class="listitem">
1812          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
1813          Rename the unique_future to future following the c++11.
1814        </li>
1815<li class="listitem">
1816          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
1817          Breaking change: thread destructor should call terminate if joinable.
1818        </li>
1819<li class="listitem">
1820          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
1821          Breaking change: thread move assignment should call terminate if joinable.
1822        </li>
1823</ul></div>
1824<p>
1825      New Features:
1826    </p>
1827<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1828<li class="listitem">
1829          <a href="http://svn.boost.org/trac/boost/ticket/2361" target="_top">#2361</a>
1830          thread_specific_ptr: document nature of the key, complexity and rationale.
1831        </li>
1832<li class="listitem">
1833          <a href="http://svn.boost.org/trac/boost/ticket/4710" target="_top">#4710</a>
1834          C++11 compliance: Missing async().
1835        </li>
1836<li class="listitem">
1837          <a href="http://svn.boost.org/trac/boost/ticket/7283" target="_top">#7283</a>
1838          C++11 compliance: Add notify_all_at_thread_exit.
1839        </li>
1840<li class="listitem">
1841          <a href="http://svn.boost.org/trac/boost/ticket/7345" target="_top">#7345</a>
1842          C++11 compliance: Add noexcept to recursive mutex try_lock.
1843        </li>
1844</ul></div>
1845<p>
1846      Fixed Bugs:
1847    </p>
1848<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1849<li class="listitem">
1850          <a href="http://svn.boost.org/trac/boost/ticket/2797" target="_top">#2797</a>
1851          Two problems with thread_specific_ptr.
1852        </li>
1853<li class="listitem">
1854          <a href="http://svn.boost.org/trac/boost/ticket/5274" target="_top">#5274</a>
1855          failed to compile future.hpp with stlport 5.1.5 under msvc8.1, because
1856          of undefined class.
1857        </li>
1858<li class="listitem">
1859          <a href="http://svn.boost.org/trac/boost/ticket/5431" target="_top">#5431</a>
1860          compile error in Windows CE 6.0(interlocked).
1861        </li>
1862<li class="listitem">
1863          <a href="http://svn.boost.org/trac/boost/ticket/5696" target="_top">#5696</a>
1864          win32 detail::set_tss_data does nothing when tss_cleanup_function is NULL.
1865        </li>
1866<li class="listitem">
1867          <a href="http://svn.boost.org/trac/boost/ticket/6931" target="_top">#6931</a>
1868          mutex waits forwever with Intel C++ Compiler XE 12.1.5.344 Build 20120612
1869        </li>
1870<li class="listitem">
1871          <a href="http://svn.boost.org/trac/boost/ticket/7045" target="_top">#7045</a>
1872          Thread library does not automatically compile date_time.
1873        </li>
1874<li class="listitem">
1875          <a href="http://svn.boost.org/trac/boost/ticket/7173" target="_top">#7173</a>
1876          wrong function name interrupt_point().
1877        </li>
1878<li class="listitem">
1879          <a href="http://svn.boost.org/trac/boost/ticket/7200" target="_top">#7200</a>
1880          Unable to build boost.thread modularized.
1881        </li>
1882<li class="listitem">
1883          <a href="http://svn.boost.org/trac/boost/ticket/7220" target="_top">#7220</a>
1884          gcc 4.6.2 warns about inline+dllimport functions.
1885        </li>
1886<li class="listitem">
1887          <a href="http://svn.boost.org/trac/boost/ticket/7238" target="_top">#7238</a>
1888          this_thread::sleep_for() does not respond to interrupt().
1889        </li>
1890<li class="listitem">
1891          <a href="http://svn.boost.org/trac/boost/ticket/7245" target="_top">#7245</a>
1892          Minor typos on documentation related to version 3.
1893        </li>
1894<li class="listitem">
1895          <a href="http://svn.boost.org/trac/boost/ticket/7272" target="_top">#7272</a>
1896          win32/thread_primitives.hpp: (Unneccessary) Warning.
1897        </li>
1898<li class="listitem">
1899          <a href="http://svn.boost.org/trac/boost/ticket/7284" target="_top">#7284</a>
1900          Clarify that there is no access priority between lock and shared_lock on
1901          shared mutex.
1902        </li>
1903<li class="listitem">
1904          <a href="http://svn.boost.org/trac/boost/ticket/7329" target="_top">#7329</a>
1905          boost/thread/future.hpp does not compile on HPUX.
1906        </li>
1907<li class="listitem">
1908          <a href="http://svn.boost.org/trac/boost/ticket/7336" target="_top">#7336</a>
1909          BOOST_THREAD_DONT_USE_SYSTEM doesn't work.
1910        </li>
1911<li class="listitem">
1912          <a href="http://svn.boost.org/trac/boost/ticket/7329" target="_top">#7349</a>
1913          packaged_task holds reference to temporary.
1914        </li>
1915<li class="listitem">
1916          <a href="http://svn.boost.org/trac/boost/ticket/7350" target="_top">#7350</a>
1917          allocator_destructor does not destroy object
1918        </li>
1919<li class="listitem">
1920          <a href="http://svn.boost.org/trac/boost/ticket/7360" target="_top">#7360</a>
1921          Memory leak in pthread implementation of boost::thread_specific_ptr
1922        </li>
1923<li class="listitem">
1924          <a href="http://svn.boost.org/trac/boost/ticket/7370" target="_top">#7370</a>
1925          Boost.Thread documentation
1926        </li>
1927<li class="listitem">
1928          <a href="http://svn.boost.org/trac/boost/ticket/7438" target="_top">#7438</a>
1929          Segmentation fault in test_once regression test in group.join_all();
1930        </li>
1931<li class="listitem">
1932          <a href="http://svn.boost.org/trac/boost/ticket/7461" target="_top">#7461</a>
1933          detail::win32::ReleaseSemaphore may be called with count_to_release equal
1934          to 0
1935        </li>
1936<li class="listitem">
1937          <a href="http://svn.boost.org/trac/boost/ticket/7499" target="_top">#7499</a>
1938          call_once doesn't call even once
1939        </li>
1940</ul></div>
1941<h4>
1942<a name="thread.changes.h17"></a>
1943      <span class="phrase"><a name="thread.changes.version_3_0_1___boost_1_51"></a></span><a class="link" href="changes.html#thread.changes.version_3_0_1___boost_1_51">Version
1944      3.0.1 - boost 1.51</a>
1945    </h4>
1946<p>
1947      Deprecated Features:
1948    </p>
1949<p>
1950      Deprecated features since boost 1.50 available only until boost 1.55:
1951    </p>
1952<p>
1953      These deprecated features will be provided by default up to boost 1.52. If
1954      you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0.
1955      Since 1.53 these features will not be included any more by default. Since this
1956      version, if you want to include the deprecated features yet you could define
1957      BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features
1958      will be only available until boost 1.55, that is you have 1 year and a half
1959      to move to the new features.
1960    </p>
1961<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1962          Time related functions don't using the Boost.Chrono library, use the chrono
1963          overloads instead.
1964        </li></ul></div>
1965<p>
1966      Breaking changes when BOOST_THREAD_VERSION==3:
1967    </p>
1968<p>
1969      There are some new features which share the same interface but with different
1970      behavior. These breaking features are provided by default when BOOST_THREAD_VERSION
1971      is 3, but the user can however choose the version 2 behavior by defining the
1972      corresponding macro. As for the deprecated features, these broken features
1973      will be only available until boost 1.55.
1974    </p>
1975<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1976<li class="listitem">
1977          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
1978          Rename the unique_future to future following the c++11.
1979        </li>
1980<li class="listitem">
1981          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
1982          Breaking change: thread destructor should call terminate if joinable.
1983        </li>
1984<li class="listitem">
1985          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
1986          Breaking change: thread move assignment should call terminate if joinable.
1987        </li>
1988</ul></div>
1989<p>
1990      Fixed Bugs:
1991    </p>
1992<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1993<li class="listitem">
1994          <a href="http://svn.boost.org/trac/boost/ticket/4258" target="_top">#4258</a>
1995          Linking with boost thread does not work on mingw/gcc 4.5.
1996        </li>
1997<li class="listitem">
1998          <a href="http://svn.boost.org/trac/boost/ticket/4885" target="_top">#4885</a>
1999          Access violation in set_tss_data at process exit due to invalid assumption
2000          about TlsAlloc.
2001        </li>
2002<li class="listitem">
2003          <a href="http://svn.boost.org/trac/boost/ticket/6931" target="_top">#6931</a>
2004          mutex waits forwever with Intel Compiler and /debug:parallel
2005        </li>
2006<li class="listitem">
2007          <a href="http://svn.boost.org/trac/boost/ticket/7044" target="_top">#7044</a>
2008          boost 1.50.0 header missing.
2009        </li>
2010<li class="listitem">
2011          <a href="http://svn.boost.org/trac/boost/ticket/7052" target="_top">#7052</a>
2012          Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only masks
2013          thread::operator==, thread::operator!= forward declarations, not definitions.
2014        </li>
2015<li class="listitem">
2016          <a href="http://svn.boost.org/trac/boost/ticket/7066" target="_top">#7066</a>
2017          An attempt to fix current_thread_tls_key static initialization order.
2018        </li>
2019<li class="listitem">
2020          <a href="http://svn.boost.org/trac/boost/ticket/7074" target="_top">#7074</a>
2021          Multiply defined symbol boost::allocator_arg.
2022        </li>
2023<li class="listitem">
2024          <a href="http://svn.boost.org/trac/boost/ticket/7078" target="_top">#7078</a>
2025          Trivial 64-bit warning fix on Windows for thread attribute stack size
2026        </li>
2027<li class="listitem">
2028          <a href="http://svn.boost.org/trac/boost/ticket/7089" target="_top">#7089</a>
2029          BOOST_THREAD_WAIT_BUG limits functionality without solving anything
2030        </li>
2031</ul></div>
2032<h4>
2033<a name="thread.changes.h18"></a>
2034      <span class="phrase"><a name="thread.changes.version_3_0_0___boost_1_50"></a></span><a class="link" href="changes.html#thread.changes.version_3_0_0___boost_1_50">Version
2035      3.0.0 - boost 1.50</a>
2036    </h4>
2037<p>
2038      Breaking changes when BOOST_THREAD_VERSION==3:
2039    </p>
2040<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2041<li class="listitem">
2042          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
2043          Breaking change: Rename the unique_future to future following the c++11.
2044        </li>
2045<li class="listitem">
2046          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
2047          Breaking change: thread destructor should call terminate if joinable.
2048        </li>
2049<li class="listitem">
2050          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
2051          Breaking change: thread move assignment should call terminate if joinable.
2052        </li>
2053</ul></div>
2054<p>
2055      New Features:
2056    </p>
2057<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2058<li class="listitem">
2059          <a href="http://svn.boost.org/trac/boost/ticket/1850" target="_top">#1850</a>
2060          Request for unlock_guard to compliment lock_guard.
2061        </li>
2062<li class="listitem">
2063          <a href="http://svn.boost.org/trac/boost/ticket/2637" target="_top">#2637</a>
2064          Request for shared_mutex duration timed_lock and timed_lock_shared.
2065        </li>
2066<li class="listitem">
2067          <a href="http://svn.boost.org/trac/boost/ticket/2741" target="_top">#2741</a>
2068          Proposal to manage portable and non portable thread attributes.
2069        </li>
2070<li class="listitem">
2071          <a href="http://svn.boost.org/trac/boost/ticket/3567" target="_top">#3567</a>
2072          Request for shared_lock_guard.
2073        </li>
2074<li class="listitem">
2075          <a href="http://svn.boost.org/trac/boost/ticket/6194" target="_top">#6194</a>
2076          Adapt to Boost.Move.
2077        </li>
2078<li class="listitem">
2079          <a href="http://svn.boost.org/trac/boost/ticket/6195" target="_top">#6195</a>
2080          c++11 compliance: Provide the standard time related interface using Boost.Chrono.
2081        </li>
2082<li class="listitem">
2083          <a href="http://svn.boost.org/trac/boost/ticket/6217" target="_top">#6217</a>
2084          Enhance Boost.Thread shared mutex interface following Howard Hinnant proposal.
2085        </li>
2086<li class="listitem">
2087          <a href="http://svn.boost.org/trac/boost/ticket/6224" target="_top">#6224</a>
2088          c++11 compliance: Add the use of standard noexcept on compilers supporting
2089          them.
2090        </li>
2091<li class="listitem">
2092          <a href="http://svn.boost.org/trac/boost/ticket/6225" target="_top">#6225</a>
2093          Add the use of standard =delete defaulted operations on compilers supporting
2094          them.
2095        </li>
2096<li class="listitem">
2097          <a href="http://svn.boost.org/trac/boost/ticket/6226" target="_top">#6226</a>
2098          c++11 compliance: Add explicit bool conversion from locks.
2099        </li>
2100<li class="listitem">
2101          <a href="http://svn.boost.org/trac/boost/ticket/6228" target="_top">#6228</a>
2102          Add promise constructor with allocator following the standard c++11.
2103        </li>
2104<li class="listitem">
2105          <a href="http://svn.boost.org/trac/boost/ticket/6230" target="_top">#6230</a>
2106          c++11 compliance: Follows the exception reporting mechanism as defined
2107          in the c++11.
2108        </li>
2109<li class="listitem">
2110          <a href="http://svn.boost.org/trac/boost/ticket/6231" target="_top">#6231</a>
2111          Add BasicLockable requirements in the documentation to follow c++11.
2112        </li>
2113<li class="listitem">
2114          <a href="http://svn.boost.org/trac/boost/ticket/6272" target="_top">#6272</a>
2115          c++11 compliance: Add thread::id hash specialization.
2116        </li>
2117<li class="listitem">
2118          <a href="http://svn.boost.org/trac/boost/ticket/6273" target="_top">#6273</a>
2119          c++11 compliance: Add cv_status enum class and use it on the conditions
2120          wait functions.
2121        </li>
2122<li class="listitem">
2123          <a href="http://svn.boost.org/trac/boost/ticket/6342" target="_top">#6342</a>
2124          c++11 compliance: Adapt the one_flag to the c++11 interface.
2125        </li>
2126<li class="listitem">
2127          <a href="http://svn.boost.org/trac/boost/ticket/6671" target="_top">#6671</a>
2128          upgrade_lock: missing mutex and release functions.
2129        </li>
2130<li class="listitem">
2131          <a href="http://svn.boost.org/trac/boost/ticket/6672" target="_top">#6672</a>
2132          upgrade_lock:: missing constructors from time related types.
2133        </li>
2134<li class="listitem">
2135          <a href="http://svn.boost.org/trac/boost/ticket/6675" target="_top">#6675</a>
2136          upgrade_lock:: missing non-member swap.
2137        </li>
2138<li class="listitem">
2139          <a href="http://svn.boost.org/trac/boost/ticket/6676" target="_top">#6676</a>
2140          lock conversion should be explicit.
2141        </li>
2142<li class="listitem">
2143          Added missing packaged_task::result_type and packaged_task:: constructor
2144          with allocator.
2145        </li>
2146<li class="listitem">
2147          Added packaged_task::reset()
2148        </li>
2149</ul></div>
2150<p>
2151      Fixed Bugs:
2152    </p>
2153<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2154<li class="listitem">
2155          <a href="http://svn.boost.org/trac/boost/ticket/2380" target="_top">#2380</a>
2156          boost::move from lvalue does not work with gcc.
2157        </li>
2158<li class="listitem">
2159          <a href="http://svn.boost.org/trac/boost/ticket/2430" target="_top">#2430</a>
2160          shared_mutex for win32 doesn't have timed_lock_upgrade.
2161        </li>
2162<li class="listitem">
2163          <a href="http://svn.boost.org/trac/boost/ticket/2575" target="_top">#2575</a>
2164          Bug- Boost 1.36.0 on Itanium platform.
2165        </li>
2166<li class="listitem">
2167          <a href="http://svn.boost.org/trac/boost/ticket/3160" target="_top">#3160</a>
2168          Duplicate tutorial code in boost::thread.
2169        </li>
2170<li class="listitem">
2171          <a href="http://svn.boost.org/trac/boost/ticket/4345" target="_top">#4345</a>
2172          thread::id and joining problem with cascade of threads.
2173        </li>
2174<li class="listitem">
2175          <a href="http://svn.boost.org/trac/boost/ticket/4521" target="_top">#4521</a>
2176          Error using boost::move on packaged_task (MSVC 10).
2177        </li>
2178<li class="listitem">
2179          <a href="http://svn.boost.org/trac/boost/ticket/4711" target="_top">#4711</a>
2180          Must use implementation details to return move-only types.
2181        </li>
2182<li class="listitem">
2183          <a href="http://svn.boost.org/trac/boost/ticket/4921" target="_top">#4921</a>
2184          BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be
2185          documented.
2186        </li>
2187<li class="listitem">
2188          <a href="http://svn.boost.org/trac/boost/ticket/5013" target="_top">#5013</a>
2189          documentation: boost::thread: pthreas_exit causes terminate().
2190        </li>
2191<li class="listitem">
2192          <a href="http://svn.boost.org/trac/boost/ticket/5173" target="_top">#5173</a>
2193          boost::this_thread::get_id is very slow.
2194        </li>
2195<li class="listitem">
2196          <a href="http://svn.boost.org/trac/boost/ticket/5351" target="_top">#5351</a>
2197          interrupt a future get boost::unknown_exception.
2198        </li>
2199<li class="listitem">
2200          <a href="http://svn.boost.org/trac/boost/ticket/5516" target="_top">#5516</a>
2201          Upgrade lock is not acquired when previous upgrade lock releases if another
2202          read lock is present.
2203        </li>
2204<li class="listitem">
2205          <a href="http://svn.boost.org/trac/boost/ticket/5990" target="_top">#5990</a>
2206          shared_future&lt;T&gt;::get() has wrong return type.
2207        </li>
2208<li class="listitem">
2209          <a href="http://svn.boost.org/trac/boost/ticket/6174" target="_top">#6174</a>
2210          packaged_task doesn't correctly handle moving results.
2211        </li>
2212<li class="listitem">
2213          <a href="http://svn.boost.org/trac/boost/ticket/6222" target="_top">#6222</a>
2214          Compile error with SunStudio: unique_future move.
2215        </li>
2216<li class="listitem">
2217          <a href="http://svn.boost.org/trac/boost/ticket/6354" target="_top">#6354</a>
2218          PGI: Compiler threading support is not turned on.
2219        </li>
2220<li class="listitem">
2221          <a href="http://svn.boost.org/trac/boost/ticket/6673" target="_top">#6673</a>
2222          shared_lock: move assign doesn't works with c++11.
2223        </li>
2224<li class="listitem">
2225          <a href="http://svn.boost.org/trac/boost/ticket/6674" target="_top">#6674</a>
2226          shared_mutex: try_lock_upgrade_until doesn't works.
2227        </li>
2228<li class="listitem">
2229          <a href="http://svn.boost.org/trac/boost/ticket/6908" target="_top">#6908</a>
2230          Compile error due to unprotected definitions of _WIN32_WINNT and WINVER.
2231        </li>
2232<li class="listitem">
2233          <a href="http://svn.boost.org/trac/boost/ticket/6940" target="_top">#6940</a>
2234          TIME_UTC is a macro in C11.
2235        </li>
2236<li class="listitem">
2237          <a href="http://svn.boost.org/trac/boost/ticket/6959" target="_top">#6959</a>
2238          call of abs is ambiguous.
2239        </li>
2240<li class="listitem">
2241          Fix issue signaled on the ML with task_object(task_object const&amp;) in
2242          presence of task_object(task_object &amp;&amp;)
2243        </li>
2244</ul></div>
2245<h4>
2246<a name="thread.changes.h19"></a>
2247      <span class="phrase"><a name="thread.changes.version_2_1_1___boost_1_49"></a></span><a class="link" href="changes.html#thread.changes.version_2_1_1___boost_1_49">Version
2248      2.1.1 - boost 1.49</a>
2249    </h4>
2250<p>
2251      Fixed Bugs:
2252    </p>
2253<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2254<li class="listitem">
2255          <a href="http://svn.boost.org/trac/boost/ticket/2309" target="_top">#2309</a>
2256          Lack of g++ symbol visibility support in Boost.Thread.
2257        </li>
2258<li class="listitem">
2259          <a href="http://svn.boost.org/trac/boost/ticket/2639" target="_top">#2639</a>
2260          documentation should be extended(defer_lock, try_to_lock, ...).
2261        </li>
2262<li class="listitem">
2263          <a href="http://svn.boost.org/trac/boost/ticket/3639" target="_top">#3639</a>
2264          Boost.Thread doesn't build with Sun-5.9 on Linux.
2265        </li>
2266<li class="listitem">
2267          <a href="http://svn.boost.org/trac/boost/ticket/3762" target="_top">#3762</a>
2268          Thread can't be compiled with winscw (Codewarrior by Nokia).
2269        </li>
2270<li class="listitem">
2271          <a href="http://svn.boost.org/trac/boost/ticket/3885" target="_top">#3885</a>
2272          document about mix usage of boost.thread and native thread api.
2273        </li>
2274<li class="listitem">
2275          <a href="http://svn.boost.org/trac/boost/ticket/3975" target="_top">#3975</a>
2276          Incorrect precondition for promise::set_wait_callback().
2277        </li>
2278<li class="listitem">
2279          <a href="http://svn.boost.org/trac/boost/ticket/4048" target="_top">#4048</a>
2280          thread::id formatting involves locale
2281        </li>
2282<li class="listitem">
2283          <a href="http://svn.boost.org/trac/boost/ticket/4315" target="_top">#4315</a>
2284          gcc 4.4 Warning: inline ... declared as dllimport: attribute ignored.
2285        </li>
2286<li class="listitem">
2287          <a href="http://svn.boost.org/trac/boost/ticket/4480" target="_top">#4480</a>
2288          OpenVMS patches for compiler issues workarounds.
2289        </li>
2290<li class="listitem">
2291          <a href="http://svn.boost.org/trac/boost/ticket/4819" target="_top">#4819</a>
2292          boost.thread's documentation misprints.
2293        </li>
2294<li class="listitem">
2295          <a href="http://svn.boost.org/trac/boost/ticket/5423" target="_top">#5423</a>
2296          thread issues with C++0x.
2297        </li>
2298<li class="listitem">
2299          <a href="http://svn.boost.org/trac/boost/ticket/5617" target="_top">#5617</a>
2300          boost::thread::id copy ctor.
2301        </li>
2302<li class="listitem">
2303          <a href="http://svn.boost.org/trac/boost/ticket/5739" target="_top">#5739</a>
2304          set-but-not-used warnings with gcc-4.6.
2305        </li>
2306<li class="listitem">
2307          <a href="http://svn.boost.org/trac/boost/ticket/5826" target="_top">#5826</a>
2308          threads.cpp: resource leak on threads creation failure.
2309        </li>
2310<li class="listitem">
2311          <a href="http://svn.boost.org/trac/boost/ticket/5839" target="_top">#5839</a>
2312          thread.cpp: ThreadProxy leaks on exceptions.
2313        </li>
2314<li class="listitem">
2315          <a href="http://svn.boost.org/trac/boost/ticket/5859" target="_top">#5859</a>
2316          win32 shared_mutex constructor leaks on exceptions.
2317        </li>
2318<li class="listitem">
2319          <a href="http://svn.boost.org/trac/boost/ticket/6100" target="_top">#6100</a>
2320          Compute hardware_concurrency() using get_nprocs() on GLIBC systems.
2321        </li>
2322<li class="listitem">
2323          <a href="http://svn.boost.org/trac/boost/ticket/6168" target="_top">#6168</a>
2324          recursive_mutex is using wrong config symbol (possible typo).
2325        </li>
2326<li class="listitem">
2327          <a href="http://svn.boost.org/trac/boost/ticket/6175" target="_top">#6175</a>
2328          Compile error with SunStudio.
2329        </li>
2330<li class="listitem">
2331          <a href="http://svn.boost.org/trac/boost/ticket/6200" target="_top">#6200</a>
2332          patch to have condition_variable and mutex error better handle EINTR.
2333        </li>
2334<li class="listitem">
2335          <a href="http://svn.boost.org/trac/boost/ticket/6207" target="_top">#6207</a>
2336          shared_lock swap compiler error on clang 3.0 c++11.
2337        </li>
2338<li class="listitem">
2339          <a href="http://svn.boost.org/trac/boost/ticket/6208" target="_top">#6208</a>
2340          try_lock_wrapper swap compiler error on clang 3.0 c++11.
2341        </li>
2342</ul></div>
2343<h4>
2344<a name="thread.changes.h20"></a>
2345      <span class="phrase"><a name="thread.changes.version_2_1_0___changes_since_boost_1_40"></a></span><a class="link" href="changes.html#thread.changes.version_2_1_0___changes_since_boost_1_40">Version 2.1.0
2346      - Changes since boost 1.40</a>
2347    </h4>
2348<p>
2349      The 1.41.0 release of Boost adds futures to the thread library. There are also
2350      a few minor changes.
2351    </p>
2352<h4>
2353<a name="thread.changes.h21"></a>
2354      <span class="phrase"><a name="thread.changes.changes_since_boost_1_35"></a></span><a class="link" href="changes.html#thread.changes.changes_since_boost_1_35">Changes
2355      since boost 1.35</a>
2356    </h4>
2357<p>
2358      The 1.36.0 release of Boost includes a few new features in the thread library:
2359    </p>
2360<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2361<li class="listitem">
2362          New generic <a class="link" href="synchronization.html#thread.synchronization.lock_functions.lock_multiple" title="Non-member function lock(Lockable1,Lockable2,...)"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
2363          and <a class="link" href="synchronization.html#thread.synchronization.lock_functions.try_lock_multiple" title="Non-member function try_lock(Lockable1,Lockable2,...)"><code class="computeroutput"><span class="identifier">try_lock</span><span class="special">()</span></code></a>
2364          functions for locking multiple mutexes at once.
2365        </li>
2366<li class="listitem">
2367          Rvalue reference support for move semantics where the compilers supports
2368          it.
2369        </li>
2370<li class="listitem">
2371          A few bugs fixed and missing functions added (including the serious win32
2372          condition variable bug).
2373        </li>
2374<li class="listitem">
2375          <code class="computeroutput"><span class="identifier">scoped_try_lock</span></code> types are
2376          now backwards-compatible with Boost 1.34.0 and previous releases.
2377        </li>
2378<li class="listitem">
2379          Support for passing function arguments to the thread function by supplying
2380          additional arguments to the <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> constructor.
2381        </li>
2382<li class="listitem">
2383          Backwards-compatibility overloads added for <code class="computeroutput"><span class="identifier">timed_lock</span></code>
2384          and <code class="computeroutput"><span class="identifier">timed_wait</span></code> functions
2385          to allow use of <code class="computeroutput"><span class="identifier">xtime</span></code> for
2386          timeouts.
2387        </li>
2388</ul></div>
2389<h4>
2390<a name="thread.changes.h22"></a>
2391      <span class="phrase"><a name="thread.changes.version_2_0_0___changes_since_boost_1_34"></a></span><a class="link" href="changes.html#thread.changes.version_2_0_0___changes_since_boost_1_34">Version 2.0.0
2392      - Changes since boost 1.34</a>
2393    </h4>
2394<p>
2395      Almost every line of code in <span class="bold"><strong>Boost.Thread</strong></span>
2396      has been changed since the 1.34 release of boost. However, most of the interface
2397      changes have been extensions, so the new code is largely backwards-compatible
2398      with the old code. The new features and breaking changes are described below.
2399    </p>
2400<h4>
2401<a name="thread.changes.h23"></a>
2402      <span class="phrase"><a name="thread.changes.new_features"></a></span><a class="link" href="changes.html#thread.changes.new_features">New
2403      Features</a>
2404    </h4>
2405<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2406<li class="listitem">
2407          Instances of <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> and of the various lock
2408          types are now movable.
2409        </li>
2410<li class="listitem">
2411          Threads can be interrupted at <a class="link" href="thread_management.html#interruption_points"><span class="emphasis"><em>interruption
2412          points</em></span></a>.
2413        </li>
2414<li class="listitem">
2415          Condition variables can now be used with any type that implements the
2416          <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.lockable" title="Lockable Concept"><code class="computeroutput"><span class="identifier">Lockable</span></code> concept</a>, through the
2417          use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code> (<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition</span></code> is a <code class="computeroutput"><span class="keyword">typedef</span></code>
2418          to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code>, provided for
2419          backwards compatibility). <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code>
2420          is provided as an optimization, and will only work with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">&gt;</span></code> (<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span></code>).
2421        </li>
2422<li class="listitem">
2423          Thread IDs are separated from <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a>, so a thread can obtain
2424          it's own ID (using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>), and IDs can be used as keys in associative
2425          containers, as they have the full set of comparison operators.
2426        </li>
2427<li class="listitem">
2428          Timeouts are now implemented using the Boost DateTime library, through
2429          a typedef <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system_time</span></code> for absolute timeouts, and
2430          with support for relative timeouts in many cases. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span></code>
2431          is supported for backwards compatibility only.
2432        </li>
2433<li class="listitem">
2434          Locks are implemented as publicly accessible templates <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span></code>,
2435          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span></code>, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_lock</span></code>,
2436          and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">upgrade_lock</span></code>, which are templated on
2437          the type of the mutex. The <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.lockable" title="Lockable Concept"><code class="computeroutput"><span class="identifier">Lockable</span></code> concept</a> has been extended
2438          to include publicly available <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.lock" title="m.lock();"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
2439          and <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.unlock" title="m.unlock();"><code class="computeroutput"><span class="identifier">unlock</span><span class="special">()</span></code></a>
2440          member functions, which are used by the lock types.
2441        </li>
2442</ul></div>
2443<h4>
2444<a name="thread.changes.h24"></a>
2445      <span class="phrase"><a name="thread.changes.breaking_changes"></a></span><a class="link" href="changes.html#thread.changes.breaking_changes">Breaking
2446      Changes</a>
2447    </h4>
2448<p>
2449      The list below should cover all changes to the public interface which break
2450      backwards compatibility.
2451    </p>
2452<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
2453<li class="listitem">
2454          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.try_mutex" title="Typedef try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code></a> has been removed, and
2455          the functionality subsumed into <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a>. <a class="link" href="synchronization.html#thread.synchronization.mutex_types.try_mutex" title="Typedef try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code></a> is left as a <code class="computeroutput"><span class="keyword">typedef</span></code>, but is no longer a separate class.
2456        </li>
2457<li class="listitem">
2458          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_try_mutex" title="Typedef recursive_try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code></a> has been removed,
2459          and the functionality subsumed into <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_mutex" title="Class recursive_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code></a>. <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_try_mutex" title="Typedef recursive_try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code></a> is left as
2460          a <code class="computeroutput"><span class="keyword">typedef</span></code>, but is no longer
2461          a separate class.
2462        </li>
2463<li class="listitem">
2464          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">lock_ops</span></code> has been removed. Code that
2465          relies on the <code class="computeroutput"><span class="identifier">lock_ops</span></code>
2466          implementation detail will no longer work, as this has been removed, as
2467          it is no longer necessary now that mutex types now have public <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.lock" title="m.lock();"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
2468          and <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.unlock" title="m.unlock();"><code class="computeroutput"><span class="identifier">unlock</span><span class="special">()</span></code></a>
2469          member functions.
2470        </li>
2471<li class="listitem">
2472          <code class="computeroutput"><span class="identifier">scoped_lock</span></code> constructors
2473          with a second parameter of type <code class="computeroutput"><span class="keyword">bool</span></code>
2474          are no longer provided. With previous boost releases,
2475<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="keyword">false</span><span class="special">);</span></pre>
2476          could be used to create a lock object that was associated with a mutex,
2477          but did not lock it on construction. This facility has now been replaced
2478          with the constructor that takes a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock_type</span></code>
2479          as the second parameter:
2480<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock</span><span class="special">);</span></pre>
2481        </li>
2482<li class="listitem">
2483          The <code class="computeroutput"><span class="identifier">locked</span><span class="special">()</span></code>
2484          member function of the <code class="computeroutput"><span class="identifier">scoped_lock</span></code>
2485          types has been renamed to <a class="link" href="synchronization.html#thread.synchronization.locks.unique_lock.owns_lock" title="bool owns_lock() const"><code class="computeroutput"><span class="identifier">owns_lock</span><span class="special">()</span></code></a>.
2486        </li>
2487<li class="listitem">
2488          You can no longer obtain a <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> instance representing the
2489          current thread: a default-constructed <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> object is not associated
2490          with any thread. The only use for such a thread object was to support the
2491          comparison operators: this functionality has been moved to <a class="link" href="thread_management.html#thread.thread_management.thread.id" title="Class boost::thread::id"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code></a>.
2492        </li>
2493<li class="listitem">
2494          The broken <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">read_write_mutex</span></code> has been replaced with
2495          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.shared_mutex" title="Class shared_mutex -- C++14"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_mutex</span></code></a>.
2496        </li>
2497<li class="listitem">
2498          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a> is now never recursive.
2499          For Boost releases prior to 1.35 <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a> was recursive on Windows
2500          and not on POSIX platforms.
2501        </li>
2502<li class="listitem">
2503          When using a <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_mutex" title="Class recursive_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code></a> with a call to
2504          <a class="link" href="synchronization.html#thread.synchronization.condvar_ref.condition_variable_any.wait" title="template&lt;typename lock_type&gt; void wait(lock_type&amp; lock)"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span><span class="special">::</span><span class="identifier">wait</span><span class="special">()</span></code></a>,
2505          the mutex is only unlocked one level, and not completely. This prior behaviour
2506          was not guaranteed and did not feature in the tests.
2507        </li>
2508</ul></div>
2509</div>
2510<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
2511<td align="left"></td>
2512<td align="right"><div class="copyright-footer">Copyright © 2007 -11 Anthony Williams<br>Copyright © 2011 -17 Vicente J. Botet Escriba<p>
2513        Distributed under the Boost Software License, Version 1.0. (See accompanying
2514        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
2515      </p>
2516</div></td>
2517</tr></table>
2518<hr>
2519<div class="spirit-nav">
2520<a accesskey="p" href="build.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="future.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
2521</div>
2522</body>
2523</html>
2524