On Mon, 23 Apr 2012 08:36:59 -0400, Kapps <[email protected]> wrote:

On Monday, 23 April 2012 at 12:11:19 UTC, Benjamin Thaut wrote:

If what you are saying is true, the deadlock must happen somewhere else. This was kind of a assumption because the deadlock happend after I added all the malloc / free calls. Because all the threads are stopped when this happens I can't really debug this, because the Visual Studio debugger tells me that it can not debug any thread but the one that is currently running the GC.

Kind Regards
Ingrater

Are these threads created by core.thread.Thread, or are they created through different means such as native OS calls or a C api? If the latter, you have to register them with the runtime (I think it was something like Thread.attachThis), otherwise issues like this will happen.

No. Dtor calls should all be done while all threads are running. The portion of the GC collection cycle which requires the world to be stopped should not be doing any locking/unlocking in arbitrary C libs. If it is, it's a bug.

-Steve

Reply via email to