Subject: Re: [boost] [threads] making parts of Boost.Threads header-only
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2009-04-08 05:30:00
Andrey Semashev <andrey.semashev_at_[hidden]> writes:
> Anthony Williams wrote:
>> In any case, after further thought I remembered the reason I didn't do
>> this before. If the exceptions are header-only then they cannot be
>> thrown from a DLL and caught outside the DLL, since the type-ids won't
>> match. This would mean that any exceptions thrown by the DLL version of
>> boost.thread wouldn't be able to be caught in user code other than by
>> catching std::exception or with catch(...). This is the case for
>> MSVC/Windows anyway --- I'm not sure about other compilers/platforms.
> Is it so? On which MSVC version? I'm asking because I throw/catch
> exceptions across dll boundaries all the time on Windows and haven't
> had any problems yet. There are some issues on Linux, but they are
> solved (more or less) with visibility tunings.
Hmm. I'll have to try it out when I get a chance. Maybe I'm mistaken,
but that's certainly my recollection.
If everything does work then that hurdle is removed.
-- Author of C++ Concurrency in Action | http://www.manning.com/williams just::thread C++0x thread library | http://www.stdthread.co.uk Just Software Solutions Ltd | http://www.justsoftwaresolutions.co.uk 15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK. Company No. 5478976