Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > N2444/Boost: fa...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 4 Topic 9547 of 9593
Post > Topic >>

N2444/Boost: fast_pthread_once and atomicity w/ regard to threads

by bachlipp@[EMAIL PROTECTED] Apr 25, 2008 at 03:43 PM

Dear C++ memory model experts,

yesterday I skimmed through the sources of the latest Boost.Thread
library, especially the POSIX Threads implementation of
boost::call_once(). It fundamentally changed in the past. The current
implementation quotes the ISO/IEC JTC1 SC22 WG21 N2444 document
(<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html>)
and uses an algorithm by Mike Burrow published there.

After reading especially Meyers / Alexandrescu: "C++ and the Perils of
Double-Checked Locking" (<http://www.aristeia.com/Papers/
DDJ_Jul_Aug_2004_revised.pdf>) (and for Java: Bacon et al.: "The
'Double-Checked Locking is Broken' Declaration" (<http://
www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html>)) I
want to ask the following:

1. Following several threads on the atomicity with regard to signals
and non-atomicity with regard to threads of sig_atomic_t (or another
integral type in the Boost implementation) my question is as follows:
Can the [atomicity] and [atomicity2] requirements really be portably
fulfilled on POSIX Threads systems? But do we really need this
requirement at all for the proof?

2. I miss one argument in the correctness reasoning layed out by
Burrow: "_fast_pthread_once_per_thread_epoch" (line 2) implies a
memory barrier. He mentions that the second
"pthread_mutex_lock()" (line 8) is assumed to provide release
consistency. So in total we end up with the two barriers declared
necessary on Page 12 (the multiprocessor Section) of the Meyers /
Alexandrescu paper. Or do I miss something here?

So, I believe the code is correct, but as the correctness of such a
central piece of software is vital, someone - including me - should
take the time to contribute to such a "mental exercise" (Burrow).

Cheers,
Philipp.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]




 4 Posts in Topic:
N2444/Boost: fast_pthread_once and atomicity w/ regard to thread
bachlipp@[EMAIL PROTECTED  2008-04-25 15:43:19 
Re: N2444/Boost: fast_pthread_once and atomicity w/ regard to th
Anthony Williams <anth  2008-04-26 03:32:22 
Re: N2444/Boost: fast_pthread_once and atomicity w/ regard to th
"Chris Thomasson&quo  2008-04-26 03:30:54 
Re: N2444/Boost: fast_pthread_once and atomicity w/ regard to th
Alexander Terekhov <te  2008-04-26 16:27:08 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed May 14 10:57:38 CDT 2008.