
14 Oct
2009
14 Oct
'09
2:21 a.m.
AMDG Sakharuk, Vladimir wrote:
boost/detail/spinlock_sync.hpp boost/detail/smart_ptr/spinlock_sync.hpp
Spinlock does not has constructor, so it is possible to have spinlock::v_ uninitialized and not to equal zero. That means it may be locked by default and call below will always return false... bool try_lock() { int r = __sync_lock_test_and_set( &v_, 1 ); return r == 0; } Am I missing something?
Adding Spinlock(): v_(0) {} Looks like solves my issue. g++ 4.1.2 on suse 2.6.16.46
This behavior is intentional. boost::detail::spinlock is a POD type. Also, in general you shouldn't use anything in a detail directory. In Christ, Steven Watanabe