Boost logo

Boost :

From: Michael Glassford (glassfordm_at_[hidden])
Date: 2004-04-16 16:42:03

Sorry, I meant to reply to this earlier and forgot.

Patrick Dreyer wrote:
> Markus Schöpflin wrote:
>> Boosters,
>> there are some pitfalls using boost::thread on the win32 plattform
>> if DLLs are involved. As I could find nothing in the documentation
>> mentioning this I would like to ask if a strong warning could be
>> added, that creating threads in DllMain() or in a global object
>> living in a DLL will deadlock. This is especially suprising as
>> using _beginthread() or CreateThread() does work in such places.

<snipped additional explanatory details>

Unfortunately, though the message you replied to is almost exactly two
years old, the problem still exists and still isn't documented, as far
as I know. I'll try either to fix it or document it sometime soon.

> My knowledge tells me, that you should not do any "complex" things
> during the Dll initialization, including starting threads.

<snipped MSDN link and copied text>

This is true, but it's not always obvious what this prohibition
applies to; for instance, the constructors of global static objects
called during dll initialization.


Boost list run by bdawes at, gregod at, cpdaniel at, john at