Have you tried running the latest runtime from git?  I fixed a rather nasty 
threading bug since the last release that could be related. 

Sent from my iPhone

On Jun 28, 2011, at 6:47 AM, Benjamin Thaut <c...@benjamin-thaut.de> wrote:

> I'm my current project, which is a relatime 3d space shooter I'm using a lot 
> of C libraries (SDL, OpenGL, OpenAL, SDL_Image, Assimp, etc.)
> As the gc would take to much time when it runs only once in a while I'm 
> performing a full collect after a frame has been rendered.
> Now once in a while, sometimes after 30 seconds, sometimes after 20 minutes, 
> the D runtime throws the "Unable to load thread context" exception. My 
> debugger tells me that the main thread is currenlty performing a full 
> collection when that happens.
> A few other threads are waiting for single or multiple objects (on windows 
> that is). A OpenGL thread runs the ntdll!ZwQueryInformationThread (I'm using 
> a nvidia card so it's the nvidia OpenGL implementation) and one of my threads 
> waits for a semaphore with a tryWait.
> 
> My application runs 3 thraeds.
> -A main thread where the renderer runs in. This thread makes all the OpenGL 
> calls.
> -A extractor thread that extracts relevant data for the renderer from the 
> game thread.
> -The game thread that actually performs the game simulation. This thread 
> makes calls to the OpenAL api.
> 
> Now I'm wondering why this happens. Is this connected to OpenGL?
> Is it not a good idea to call the gc collect manually?
> Isthe thread that is waiting for the semaphore the problem?
> 
> Any help would be appreciated.
> -- 
> Kind Regards
> Benjamin Thaut

Reply via email to