2010-06-24 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Thu, 24 Jun 2010 11:53:20 +0000 (11:53 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Thu, 24 Jun 2010 11:53:20 +0000 (11:53 -0000)
* HttpStandaloneReplyChannel.cs : do not try to enter close loop
  between request context and this.

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

mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpStandaloneReplyChannel.cs

index 817b2ffe8cb136b356b3acb034e9cf9807487ac9..5c6edcbc00e71d4a6164703f2a6d9e674f9b76bc 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * HttpStandaloneReplyChannel.cs : do not try to enter close loop
+         between request context and this.
+
 2010-06-23  Atsushi Enomoto  <atsushi@ximian.com>
 
        * HttpStandaloneChannelListener.cs
index b8b2122adef08de3de7d583f2b8eaff76b724526..92e96e5a6f8bd17e2bdfa20f71aa6cce95d0d667 100644 (file)
@@ -65,14 +65,18 @@ namespace System.ServiceModel.Channels.Http
 
                void AbortConnections (TimeSpan timeout)
                {
-                       // FIXME: find out how and what it should handle this situation.
+                       if (reqctx != null)
+                               reqctx.Close (timeout);
                }
 
+               bool close_started;
+
                protected override void OnClose (TimeSpan timeout)
                {
+                       if (close_started)
+                               return;
+                       close_started = true;
                        DateTime start = DateTime.Now;
-                       if (reqctx != null)
-                               reqctx.Close (timeout);
 
                        // FIXME: consider timeout
                        AbortConnections (timeout - (DateTime.Now - start));