[Mono-dev] [PATCH] Changes for CreateThread calls.

Bill Holmes billholmes54 at gmail.com
Wed Mar 25 14:00:26 EDT 2009


Kornél,

Yes that would work too.

Thanks
-bill

2009/3/25 Kornél Pál <kornelpal at gmail.com>:
> Wouldn't just this be enough?
>
> in mono_thread_create_internal:
>
> #ifdef PLATFORM_WIN32
> DWORD tid;
> #else
> gsize tid;
> #endif
>
> Kornél
>
> Bill Holmes wrote:
>>
>> Hi,
>>
>> The attached patch fixes some problems I was seeing with thread IDs on
>> Winx64.
>>
>> What I found was that the thread ID argument of CreateThread is a
>> ulong which is not 64 bits on Winx64.  So when called with the address
>> of a size variable the top 32 bits are garbage.  This patch simply
>> initializes all thread ID variables to zero before calling
>> CreateThread.  Is there a better way to fix this?
>>
>> -bill
>>
>>
>>
>> 2009-03-25  Bill Holmes  <billholmes54 at gmail.com>
>>
>>        * appdomain.c (mono_domain_unload),
>>        * attach.c (transport_start_receive),
>>        * threads.c (mono_thread_create_internal),
>>        * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
>>          Initialize the tid variable to 0 before calls to CreateThread.
>>          This is needed for Winx64 because that argument is only 32 bits.
>>
>>        Code is contributed under MIT/X11 license.
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


More information about the Mono-devel-list mailing list