2 // spinlock_try_test.cpp
4 // Copyright 2008 Peter Dimov
6 // Distributed under the Boost Software License, Version 1.0.
7 // See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
11 #include <boost/smart_ptr/detail/spinlock.hpp>
12 #include <boost/detail/lightweight_test.hpp>
16 static boost::detail::spinlock sp = BOOST_DETAIL_SPINLOCK_INIT;
17 static boost::detail::spinlock sp2 = BOOST_DETAIL_SPINLOCK_INIT;
21 BOOST_TEST( sp.try_lock() );
22 BOOST_TEST( !sp.try_lock() );
23 BOOST_TEST( sp2.try_lock() );
24 BOOST_TEST( !sp.try_lock() );
25 BOOST_TEST( !sp2.try_lock() );
30 BOOST_TEST( !sp.try_lock() );
32 BOOST_TEST( !sp.try_lock() );
33 BOOST_TEST( !sp2.try_lock() );
38 boost::detail::spinlock::scoped_lock lock( sp );
39 BOOST_TEST( !sp.try_lock() );
40 boost::detail::spinlock::scoped_lock lock2( sp2 );
41 BOOST_TEST( !sp.try_lock() );
42 BOOST_TEST( !sp2.try_lock() );
45 return boost::report_errors();