scoped_lock で timed_mutex の両方を使用しようとしています。以前、いくつかの例に従って scoped_lock を正常に使用したことがありますが、今ではうまくいかないようで、ブーストのドキュメントを正しく理解することもできません。
望ましい動作は次のとおりです: scoped_lock の取得を x 時間試行し、成功した場合は true を返し、それ以外の場合は false を返します。
現在私は持っています:
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
ただし、このscoped_lockがブール値を返すかどうかを(ブーストのドキュメントまたは例を介して)見つけようとすると、何も見つからないか、実際に異なる方法が見つかります。
したがって、私はそれを行う正しい方法は何か、それはどのように正確に機能するのか、そしてブーストのドキュメントをどのように正しく「読む」かについてのいくつかの指示を尋ねます.
アップデート:
そう
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
if(scoped_lock.owns_lock()) {
// exclusive code
}
scoped_lock.owns_lock() でロックしようとすると、10 ミリ秒 (この場合) の間にロックを取得しようとし、時間切れでロックが取得されなかった場合に false を返すミューテックスを作成しますか?