On May 2, 2013, at 6:17 AM, Regan Heath <re...@netmail.co.nz> wrote:

> On Wed, 01 May 2013 01:12:39 +0100, Sean Kelly <s...@invisibleduck.org> wrote:
> 
>> On Apr 23, 2013, at 2:21 PM, Jack Applegame <jappleg...@gmail.com> wrote:
>>> 
>>> According WinAPI documentation, CtrlHandler will be called in new 
>>> additional thread. Is it safe to allocate GC memory in NOT Phobos threads?
>>> If not, how to make it safe? I'm trying call thread_attachThis() at the 
>>> beginning of CtrlHandler fucntion, but it doesn't compile because 
>>> thread_attachThis() is not no throw.
>> 
>> 
>> thread_attachThis should probably just be labeled nothrow.  I don't think 
>> there's anything in that function that can throw an Exception.
> 
> That makes it callable.. but did you see my post about the various timing 
> issues with using this in a non-GC thread (potentially while the GC is 
> already collecting - or similar).

The GC holds a lock on the global thread list while collecting, so it shouldn't 
be possible for thread_attachThis to register a thread when this is happening.  
In fact, thread_attachThis even temporarily disables the GC, and since this 
operation is protected by the GC lock, it's blocked there as well.

Reply via email to