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<future<T>>::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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<future<T>>::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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<future<T>>::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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<> 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<>::load() 331 </li> 332<li class="listitem"> 333 fix relational operators of boost::synchronized_value<> 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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<>::operator=() 421 </li> 422<li class="listitem"> 423 #90 fix a bug in try_lock_wrapper<>::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<>::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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<>::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<>::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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<future<T>>::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<future<T>>::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& type deduction when the make_ready_future parameter is reference_wrapper<T> 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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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 & 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 < 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<T>::set_value(const T&) 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<T> dont satisfy is_copy_constructible<T>::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<R>::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 & 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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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&status=new&status=reopened&component=thread&type=!Feature+Requests&col=id&col=summary&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<>::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<>::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<>::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<>.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 <atomic>' 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->code()->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<>::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<R> is deprecated, use instead packaged_task<R()>. 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<mutex>&). 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<T>::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&) in 2242 presence of task_object(task_object &&) 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"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></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<typename lock_type> void wait(lock_type& 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