
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@acc.umu.se