소스 검색

* SocketResponder.cs: Made a little more robust.

svn path=/trunk/mcs/; revision=136546
Gert Driesen 16 년 전
부모
커밋
e9891de02a
2개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  1. 4 0
      mcs/class/System/Test/System.Net/ChangeLog
  2. 7 3
      mcs/class/System/Test/System.Net/SocketResponder.cs

+ 4 - 0
mcs/class/System/Test/System.Net/ChangeLog

@@ -1,3 +1,7 @@
+2009-06-20  Gert Driesen  <[email protected]>
+
+	* SocketResponder.cs: Made a little more robust.
+
 2009-06-20  Gert Driesen  <[email protected]>
 
 	* HttpListener2Test.cs: Added test for bug #513849.

+ 7 - 3
mcs/class/System/Test/System.Net/SocketResponder.cs

@@ -97,6 +97,7 @@ namespace MonoTests.System.Net
 				if (tcpListener != null) {
 					tcpListener.Stop ();
 					tcpListener = null;
+					Thread.Sleep (50);
 				}
 			}
 		}
@@ -104,20 +105,23 @@ namespace MonoTests.System.Net
 		private void Listen ()
 		{
 			while (!_stopped) {
+				Socket socket = null;
 				try {
-					Socket socket = tcpListener.AcceptSocket ();
+					socket = tcpListener.AcceptSocket ();
 					socket.Send (_requestHandler (socket));
 					try {
 						socket.Shutdown (SocketShutdown.Receive);
 						socket.Shutdown (SocketShutdown.Send);
 					} catch {
 					}
-					Thread.Sleep (500);
-					socket.Close ();
 				} catch (SocketException ex) {
 					// ignore interruption of blocking call
 					if (ex.ErrorCode != SOCKET_CLOSED)
 						throw;
+				} finally {
+					Thread.Sleep (500);
+					if (socket != null)
+						socket.Close ();
 				}
 			}
 		}