[Mono-dev] [PATCH] Interrupting socket calls on Windows during shutdown.

Bill Holmes billholmes54 at gmail.com
Mon Jun 22 10:49:38 EDT 2009


Hi,

We have run into another problem on Windows with socket calls on
background threads not stopping during shutdown.  The attached patch
sets a flag on the thread struct around the socket calls.  If this
flag is set when thread manage is called that thread will be killed
during the APC call.

http://msdn.microsoft.com/en-us/library/ms684954(VS.85).aspx

This only applies to threads that are stopping (process shutdown) and
are background threads.

-bill

2009-06-22  Bill Holmes  <billholmes54 at gmail.com>

	* object-internals.h : Adding interrupt_on_stop field.

	* threads.c (mono_thread_request_interruption) : On Windows exit the
thread if interrupt_on_stop is set.

	* socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
	  Removing old interrupt logic and setting the interrupt_on_stop for the
	  thread when calling accept.

	* socket-io.c (ves_icall_System_Net_Sockets_Socket_Receive_internal) :
	  setting the interrupt_on_stop for the thread when calling accept.

	* Thread.cs : Adding interrupt_on_stop field.

	Contributed under MIT/X11 license.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: socket_interrupt.patch
Type: application/octet-stream
Size: 4527 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090622/23078141/attachment.obj 


More information about the Mono-devel-list mailing list