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

Kornél Pál kornelpal at gmail.com
Wed Mar 25 12:44:32 EDT 2009


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