On Jun 30, 2011, at 2:40 AM, Benjamin Thaut wrote:

> Am 30.06.2011 06:45, schrieb Sean Kelly:
>> On Jun 29, 2011, at 10:00 AM, Benjamin Thaut wrote:
>>> If I manually merge your fix into the thread.d of the 2.053 runtime (change 
>>> m to __gshared in slock) the issue still exsits. After a while the game 
>>> will stop with "unable to load thread context".
>> 
>> Just for kicks, rewrite the GetThreadContext call as this and see if it 
>> works in 2.053:
>> 
>>             for( int i = 0; !GetThreadContext( t.m_hndl,&context ); i++ )
>>             {
>>                 if( i>  99 )
>>                     throw new ThreadException( "Unable to load thread 
>> context" );
>>                 Thread.yield();
>>             }
>> 
> 
> The for loop seems to have fixed the issue, at least I'm not able to 
> reproduce it easily any more. I'm going to be able to tell you tomorrow if 
> the issue is fixed completely or not.

Cool.  I've applied the change to druntime.

> Does any access to the GC cause a Exception to be thrown? I mean even a 
> removeRange call?

malloc, realloc, extend, reserve, addRoot, and addRange.  I think that's it.

Reply via email to