Boost logo

Boost :

Subject: Re: [boost] [thread] Can Boost.Thread use Boost.Atomic without falling on a compatibility issue?
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-01-12 12:29:26


On Saturday 12 January 2013 17:49:38 Vicente J. Botet Escriba wrote:
> Le 12/01/13 17:09, Andrey Semashev a écrit :
> > On Saturday 12 January 2013 15:48:21 Vicente J. Botet Escriba wrote:
> >> Le 12/01/13 14:26, Andrey Semashev a écrit :
> >>> On Saturday 12 January 2013 12:08:10 Vicente J. Botet Escriba wrote:
> >>>> Le 12/01/13 11:51, Andrey Semashev a écrit :
> >>>>> Anyway, can Boost.Thread be modified in such a way so that
> >>>>> Boost.Atomic
> >>>>> use is not exposed to the user? E.g. so that call_once invokes a
> >>>>> compiled
> >>>>> function implemented within Boost.Thread library that uses
> >>>>> Boost.Atomic
> >>>>> to modify the once flag.
> >>>>
> >>>> yes, this will be great. I don't know Boost.Atomic details to try to do
> >>>> this. Andrey do you mind to provide a patch that doesn't needs to link
> >>>> with boost_atomic?
> >>>
> >>> I attached the patch (for posix only). It appeared a bit hacky and I'm
> >>> not
> >>> sure if you're ok with it.
> >>
> >> Thanks for the quick patch.
> >> Shouldn't the patch concern only boost/thread/pthread/once.hpp and
> >> libs/thread/src/pthread/once.hpp?
> >> Could you send the resulting files also?
> >
> > There is no libs/thread/src/pthread/once.hpp file as far as I can see.
>
> RIght. I meant
>
> libs/thread/src/pthread/once.cpp

It is patched.

> > The
> > boost/thread/pthread/once.hpp file is no longer needed and can be removed
> > (as well as boost/thread/win32/once.hpp when win32 version is
> > implemented). The complete public code is platform-independent and
> > resides in
> > boost/thread/once.hpp after the patch is applied.
>
> IIRC the problem was on the Posix implementation, so a specific patch
> for the pthread files will be desirable.

Ok, I intended to port both Windows and POSIX implementations but we could do
it just for POSIX variant.

I attached the updated patch to the ticket. The Jamfile will also have to be
updated to add the dependency on Boost.Atomic. However, the Jamfile in
Boost.Thread is rather complicated so I didn't do that.

> Anyway, could you send the resulting files to make easier the review?

The files are attached. These should be boost/thread/posix/once.hpp and
libs/thread/src/posix/once.cpp, other files are intact.




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk