Boost logo

Boost Users :

Subject: Re: [Boost-users] [interprocess] Is there a bug in spinlock atomic implementations 1.39 and 1.40?
From: Sakharuk, Vladimir (vladimir.sakharuk_at_[hidden])
Date: 2009-10-14 09:13:12


Steven, Thanks!
If I can not use detail folder is there other ways I can use atomic
based spinlock?

Please follow the attached hyperlink to an important disclosure:
http://www.credit-suisse.com/legal/marketcommentary

-----Original Message-----
From: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]] On Behalf Of Steven
Watanabe
Sent: Tuesday, October 13, 2009 10:22 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [interprocess] Is there a bug in spinlock
atomic implementations 1.39 and 1.40?

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

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users

===============================================================================
 Please access the attached hyperlink for an important electronic communications disclaimer:
 http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
 ===============================================================================
 


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net