mirror of
https://github.com/boostorg/thread.git
synced 2026-01-23 06:02:14 +00:00
145 lines
6.4 KiB
XML
145 lines
6.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd" [
|
|
<!ENTITY % threads.entities SYSTEM "entities.xml">
|
|
%threads.entities;
|
|
]>
|
|
<section id="threads.release_notes" last-revision="$Date$">
|
|
<title>Release Notes</title>
|
|
<section id="threads.release_notes.boost_1_32_0">
|
|
<title>Boost 1.32.0</title>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.documentation">
|
|
<title>Documentation converted to BoostBook</title>
|
|
|
|
<para>The documentation was converted to BoostBook format,
|
|
and a number of errors and inconsistencies were
|
|
fixed in the process.
|
|
Since this was a fairly large task, there are likely to be
|
|
more errors and inconsistencies remaining. If you find any,
|
|
please report them!</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.static_link">
|
|
<title>Statically-link build option added</title>
|
|
|
|
<para>The option to link &Boost.Threads; as a static
|
|
library has been added (with some limitations on Win32 platforms).
|
|
This feature was originally removed from an earlier version
|
|
of Boost because <classname>boost::thread_specific_ptr</classname>
|
|
required that &Boost.Threads; be dynamically linked in order
|
|
for its cleanup functionality to work on Win32 platforms.
|
|
Because this limitation never applied to non-Win32 platforms,
|
|
because significant progress has been made in removing
|
|
the limitation on Win32 platforms (many thanks to
|
|
Aaron LaFramboise and Roland Scwarz!), and because the lack
|
|
of static linking is one of the most common complaints of
|
|
&Boost.Threads; users, this decision was reversed.</para>
|
|
|
|
<para>On non-Win32 platforms:
|
|
To choose the dynamically linked version of &Boost.Threads;
|
|
using Boost's auto-linking feature, #define BOOST_THREAD_USE_DLL;
|
|
to choose the statically linked version,
|
|
#define BOOST_THREAD_USE_LIB.
|
|
If neither symbols is #defined, the default will be chosen.
|
|
Currently the default is the statically linked version.</para>
|
|
|
|
<para>On Win32 platforms using VC++:
|
|
Use the same #defines as for non-Win32 platforms
|
|
(BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
|
|
If neither is #defined, the default will be chosen.
|
|
Currently the default is the statically linked version
|
|
if the VC++ run-time library is set to
|
|
"Multi-threaded" or "Multi-threaded Debug", and
|
|
the dynamically linked version
|
|
if the VC++ run-time library is set to
|
|
"Multi-threaded DLL" or "Multi-threaded Debug DLL".</para>
|
|
|
|
<para>On Win32 platforms using compilers other than VC++:
|
|
Use the same #defines as for non-Win32 platforms
|
|
(BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
|
|
If neither is #defined, the default will be chosen.
|
|
Currently the default is the dynamically linked version
|
|
because it has not yet been possible to implement automatic
|
|
tss cleanup in the statically linked version for compilers
|
|
other than VC++, although it is hoped that this will be
|
|
possible in a future version of &Boost.Threads;.
|
|
|
|
Note for advanced users: &Boost.Threads; provides several "hook"
|
|
functions to allow users to experiment with the statically
|
|
linked version on Win32 with compilers other than VC++.
|
|
These functions are on_process_enter(), on_process_exit(),
|
|
on_thread_enter(), and on_thread_exit(), and are defined
|
|
in tls_hooks.cpp. See the comments in that file for more
|
|
information.</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.barrier">
|
|
<title>Barrier functionality added</title>
|
|
|
|
<para>A new class, <classname>boost::barrier</classname>, was added.</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.read_write_mutex">
|
|
<title>Read/write mutex functionality added</title>
|
|
|
|
<para>New classes,
|
|
<classname>boost::read_write_mutex</classname>,
|
|
<classname>boost::try_read_write_mutex</classname>, and
|
|
<classname>boost::timed_read_write_mutex</classname>
|
|
were added.
|
|
|
|
<note>Since the read/write mutex and related classes are new,
|
|
both interface and implementation are liable to change
|
|
in future releases of &Boost.Threads;.
|
|
The lock concepts and lock promotion in particular are
|
|
still under discussion and very likely to change.</note>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.thread_specific_ptr">
|
|
<title>Thread-specific pointer functionality changed</title>
|
|
|
|
<para>The <classname>boost::thread_specific_ptr</classname>
|
|
constructor now takes an optional pointer to a cleanup function that
|
|
is called to release the thread-specific data that is being pointed
|
|
to by <classname>boost::thread_specific_ptr</classname> objects.</para>
|
|
|
|
<para>Fixed: the number of available thread-specific storage "slots"
|
|
is too small on some platforms.</para>
|
|
|
|
<para>Fixed: <functionname>thread_specific_ptr::reset()</functionname>
|
|
doesn't check error returned by <functionname>tss::set()</functionname>
|
|
(the <functionname>tss::set()</functionname> function now throws
|
|
if it fails instead of returning an error code).</para>
|
|
|
|
<para>Fixed: calling
|
|
<functionname>boost::thread_specific_ptr::reset()</functionname> or
|
|
<functionname>boost::thread_specific_ptr::release()</functionname>
|
|
causes double-delete: once when
|
|
<functionname>boost::thread_specific_ptr::reset()</functionname> or
|
|
<functionname>boost::thread_specific_ptr::release()</functionname>
|
|
is called and once when
|
|
<functionname>boost::thread_specific_ptr::~thread_specific_ptr()</functionname>
|
|
is called.</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.mutex">
|
|
<title>Mutex implementation changed for Win32</title>
|
|
|
|
<para>On Win32, <classname>boost::mutex</classname>,
|
|
<classname>boost::try_mutex</classname>, <classname>boost::recursive_mutex</classname>,
|
|
and <classname>boost::recursive_try_mutex</classname> now use a Win32 critical section
|
|
whenever possible; otherwise they use a Win32 mutex. As before,
|
|
<classname>boost::timed_mutex</classname> and
|
|
<classname>boost::recursive_timed_mutex</classname> use a Win32 mutex.</para>
|
|
</section>
|
|
|
|
<section id="threads.release_notes.boost_1_32_0.change_log.wince">
|
|
<title>Windows CE support improved</title>
|
|
|
|
<para>Minor changes were made to make Boost.Threads work on Windows CE.</para>
|
|
</section>
|
|
</section>
|
|
</section>
|