Boost logo

Boost Users :

Subject: Re: [Boost-users] [thread] variables in thread examples require 'volatile'?
From: liam mail (liam.list_at_[hidden])
Date: 2009-12-07 19:56:46


2009/12/7 Gabriel Redner <gredner_at_[hidden]>

> Dear Boosters,
>
> I'm involved in a bit of a dispute in which a colleague is claiming
> that 'volatile' is necessary to make certain synchronization patterns
> correct. As part of my response I pointed out that the boost.thread
> examples don't use it, but he maintains his position - saying that the
> examples are flawed. I'm frankly somewhat out of my element here, and
> I'd like to get input from people who have presumably thought about
> this stuff a good deal.
>
> The example in question is here, under "synopsis":
>
> http://www.boost.org/doc/libs/1_41_0/doc/html/thread/synchronization.html#thread.synchronization.condvar_ref
>
> The claim is that 'volatile' is needed on the boolean, otherwise the
> compiler might cache the boolean in a register, and the loop would
> never exit. He cites for support two articles:
>
> http://www.ddj.com/cpp/184403766
>
> https://www.securecoding.cert.org/confluence/display/seccode/DCL17-C.+Beware+of+miscompiled+volatile-qualified+variables
>
> Who's right?
>
> Thanks,
> -Gabe
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
Required reading
http://software.intel.com/en-us/blogs/2007/11/30/volatile-almost-useless-for-multi-threaded-programming/



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