boost::details::pool::pthread_mutex
とはどう違いboost::details::pool::null_mutex
ますか?
最新のブースト バージョン - 1.42 では、クラス boost::details::pool::pthread_mutex
が削除されていることがわかります。代わりに何を使用すればよいですか?
boost::details::pool::null_mutex
は何もしないミューテックスです(ロックは常にすぐに成功します)。スレッドを使用していない場合に適しています。Boostプールライブラリは、以下のスニペットに基づいて、クリティカルセクションへのアクセスをミューテックスタイプのtypedefと同期するために使用するミューテックスの種類を選択しますboost\pool\detail\mutex.hpp
。
#if !defined(BOOST_HAS_THREADS) || defined(BOOST_NO_MT) || defined(BOOST_POOL_NO_MT)
typedef null_mutex default_mutex;
#else
typedef boost::mutex default_mutex;
#endif
つまり、(Boost全体、または特にプールライブラリのいずれかで)スレッド化が含まれていないことが構成で示されている場合は、null_mutex
が使用されます(基本的にはnopです)。
スレッド化がサポートされる場合はboost::mutex
、Boostスレッドライブラリからのタイプが使用されます(システムがpthreadを使用する場合はpthreadベースのミューテックスになります)。