コード例 #1
0
ファイル: spinlock.hpp プロジェクト: Bcorde5/hpx
 void unlock()
 {
     HPX_ITT_SYNC_RELEASING(this);
     m.unlock();
     HPX_ITT_SYNC_RELEASED(this);
     util::unregister_lock(this);
 }
コード例 #2
0
ファイル: spinlock.hpp プロジェクト: Bcorde5/hpx
 void lock()
 {
     HPX_ITT_SYNC_PREPARE(this);
     m.lock();
     HPX_ITT_SYNC_ACQUIRED(this);
     util::register_lock(this);
 }
コード例 #3
0
ファイル: spinlock.hpp プロジェクト: Bcorde5/hpx
 bool try_lock()
 {
     HPX_ITT_SYNC_PREPARE(this);
     if (m.try_lock()) {
         HPX_ITT_SYNC_ACQUIRED(this);
         util::register_lock(this);
         return true;
     }
     HPX_ITT_SYNC_CANCEL(this);
     return false;
 }
コード例 #4
0
int main()
{
    BOOST_TEST( sp.try_lock() );
    BOOST_TEST( !sp.try_lock() );
    BOOST_TEST( sp2.try_lock() );
    BOOST_TEST( !sp.try_lock() );
    BOOST_TEST( !sp2.try_lock() );
    sp.unlock();
    sp2.unlock();

    sp.lock();
    BOOST_TEST( !sp.try_lock() );
    sp2.lock();
    BOOST_TEST( !sp.try_lock() );
    BOOST_TEST( !sp2.try_lock() );
    sp.unlock();
    sp2.unlock();

    {
        boost::detail::spinlock::scoped_lock lock( sp );
        BOOST_TEST( !sp.try_lock() );
        boost::detail::spinlock::scoped_lock lock2( sp2 );
        BOOST_TEST( !sp.try_lock() );
        BOOST_TEST( !sp2.try_lock() );
    }

    return boost::report_errors();
}
コード例 #5
0
ファイル: spinlock.hpp プロジェクト: yaimready/yux
		void unlock(){
			mutex_.unlock();
		}
コード例 #6
0
ファイル: spinlock.hpp プロジェクト: yaimready/yux
		void lock(){
			mutex_.lock();
		}