| <?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> |