2010-04-30 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 30 Apr 2010 06:52:41 +0000 (06:52 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Fri, 30 Apr 2010 06:52:41 +0000 (06:52 -0000)
* HttpListenerManager.cs : use manual reset here to not cause
  possible inconsistent locking.

svn path=/trunk/mcs/; revision=156489

mcs/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Channels/HttpListenerManager.cs

index 795def22d504ee8dd1af29368a5102638e8b65c4..3c5b7bcc57a96a207c68bcc9cd4bbf77badef646 100755 (executable)
@@ -1,3 +1,8 @@
+2010-04-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * HttpListenerManager.cs : use manual reset here to not cause
+         possible inconsistent locking.
+
 2010-04-28  Atsushi Enomoto  <atsushi@ximian.com>
 
        * HttpChannelListener.cs, HttpListenerManager.cs :
index 9b430f380900603054b6eca6ff7f450aa30a0a46..4e26602b94dcdbc09af6008d1e1170e4be355a01 100644 (file)
@@ -249,7 +249,7 @@ namespace System.ServiceModel.Channels
                IChannelListener channel_listener;
                MetadataPublishingInfo mex_info;
                HttpGetWsdl wsdl_instance;
-               AutoResetEvent wait_http_ctx = new AutoResetEvent (false);
+               ManualResetEvent wait_http_ctx = new ManualResetEvent (false);
                List<HttpContextInfo> pending = new List<HttpContextInfo> ();
 
                public MetadataPublishingInfo MexInfo { get { return mex_info; } }
@@ -344,6 +344,7 @@ namespace System.ServiceModel.Channels
                        }
                        KickContextReceiver (channel_listener, DispatchHttpListenerContext);
                        wait_http_ctx.WaitOne (timeout);
+                       wait_http_ctx.Reset ();
                        lock (pending) {
                                HttpContextInfo ctx = pending.Count > 0 ? pending [0] : null;
                                if (ctx != null)