signals2/doc/reference/mutex.xml
2009-06-02 14:18:22 +00:00

71 lines
2.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<!--
Copyright Frank Mori Hess 2008-2009
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-->
<header name="boost/signals2/mutex.hpp" last-revision="$Date: 2007-03-06 16:51:55 -0500 (Tue, 06 Mar 2007) $">
<using-namespace name="boost::signals2"/>
<using-namespace name="boost"/>
<namespace name="boost">
<namespace name="signals2">
<class name="mutex">
<purpose>A header-only mutex which implements the Lockable concept of Boost.Thread.</purpose>
<description>
<para>
The <code>mutex</code> class implements the <code>Lockable</code>
concept of Boost.Thread, and is the default <code>Mutex</code> template parameter
type for signals.
If boost has detected thread support in your compiler, the <code>mutex</code>
class will map to a CRITICAL_SECTION on Windows
or a pthread_mutex on POSIX. If thread support is not detected, <code>mutex</code>
will behave similarly to a <classname>dummy_mutex</classname>.
The header file <code>boost/config.hpp</code>
defines the macro <code>BOOST_HAS_THREADS</code> when boost detects threading support.
The user may globally disable thread support
in boost by defining BOOST_DISABLE_THREADS before any boost header files are included.
</para>
<para>
If you are already using the Boost.Thread library, you may prefer to use its
<classname>boost::mutex</classname> class instead as the mutex type for your signals.
</para>
<para>
You may wish to use a thread-unsafe signal, if
the signal is only used by a single thread. In that case, you may prefer to
use the <classname>signals2::dummy_mutex</classname> class as the <code>Mutex</code>
template type for your signal.
</para>
</description>
<access name="public">
<method name="lock">
<type>void</type>
<description>
<para>Locks the mutex.
</para>
</description>
</method>
<method name="try_lock">
<type>bool</type>
<description>
<para>Makes a non-blocking attempt to lock the mutex.
</para>
</description>
<returns><para><code>true</code> on success.</para></returns>
</method>
<method name="unlock">
<type>void</type>
<description>
<para>Unlocks the mutex.
</para>
</description>
</method>
</access>
</class>
</namespace>
</namespace>
</header>