thread.d "Unable to load thread context"

Sean Kelly sean at invisibleduck.org
Thu Jun 30 12:05:15 PDT 2011


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.


More information about the Digitalmars-d mailing list