Boost logo

Boost :

Subject: Re: [boost] [atomic] boost.atomic library/win32
From: Lars Viklund (zao_at_[hidden])
Date: 2012-08-10 16:17:32


On Fri, Aug 10, 2012 at 07:37:39PM +0200, Jürgen Hunold wrote:
> On Thursday, 9. August 2012 14:26:17 Lars Viklund wrote:
> > In detail/lockpool.hpp, decorate the lockpool class as:
> > class BOOST_ATOMIC_DECL lockpool
> > and move the member functions that touch pool_ into lockpool.cpp, to
> > avoid them from getting inlined in consumers.
>
> Please find an alternative patch attached. You only have to explicitly export
> the "pool_" variable. No further changes are required.

This is sadly false. The static member function which uses pool_ may get
inlined in the using TU thanks to being defined implicitly inline in the
class definition.

At link-time, the user will not be able to resolve the symbol, even
though the library exports a symbol by that exact name, thanks to how
exported symbols are implicitly indirected one layer.

I tried that approach first, and it didn't work.

-- 
Lars Viklund | zao_at_[hidden]

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