2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 22 Jan 2010 08:18:19 +0000 (08:18 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Fri, 22 Jan 2010 08:18:19 +0000 (08:18 -0000)
* DuplexClientRuntimeChannel.cs : do not try to iterate channel
  acceptor when it is being closed.

* ChannelDispatcher.cs : do not try to iterate channel acceptor when
  it is being closed.

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

mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel/DuplexClientRuntimeChannel.cs

index 5781898ebe6077dc3003ace306d9e8f6d1a385a7..7481770a6484f47b24b13196ea6311f8757b5651 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ChannelDispatcher.cs : do not try to iterate channel acceptor when
+         it is being closed.
+
 2010-01-19  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ChannelDispatcher.cs : another error audit.
index 2f1bf0042692f2ae8fffe0b62e8f9a4bc501cf47..9c2c02218130544ec95e57b69f2584ba3630509a 100644 (file)
@@ -594,7 +594,7 @@ namespace System.ServiceModel.Dispatcher
                                        if (rc != null)
                                                rc.Close ();
                                        // unless it is closed by session/call manager, move it back to the loop to receive the next message.
-                                       if (reply.State != CommunicationState.Closed)
+                                       if (loop && reply.State != CommunicationState.Closed)
                                                ProcessRequestOrInput (reply);
                                }
                        }
@@ -612,7 +612,7 @@ namespace System.ServiceModel.Dispatcher
                                        Console.WriteLine (ex);
                                } finally {
                                        // unless it is closed by session/call manager, move it back to the loop to receive the next message.
-                                       if (input.State != CommunicationState.Closed)
+                                       if (loop && input.State != CommunicationState.Closed)
                                                ProcessRequestOrInput (input);
                                }
                        }
index bf940134630a7a533e9d4c2b8433493451dc80a7..1969b60f558ebd29c21bad2cbfb6199889fbaf9d 100755 (executable)
@@ -1,3 +1,8 @@
+2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DuplexClientRuntimeChannel.cs : do not try to iterate channel
+         acceptor when it is being closed.
+
 2010-01-20  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ServiceHostBase.cs : a stability workaround to make nunit test
index ef8f80047254dea5fab91582d96182b2b4d16ecf..43d6e2168ec78d8da3789d75f0bdf3cbeafe007a 100644 (file)
@@ -164,7 +164,7 @@ namespace System.ServiceModel
                                Console.WriteLine (ex);
                        } finally {
                                // unless it is closed by session/call manager, move it back to the loop to receive the next message.
-                               if (input.State != CommunicationState.Closed)
+                               if (loop && input.State != CommunicationState.Closed)
                                        ProcessRequestOrInput (input);
                        }
                }