2009-07-30 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Thu, 30 Jul 2009 07:49:45 +0000 (07:49 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Thu, 30 Jul 2009 07:49:45 +0000 (07:49 -0000)
* DuplexChannelBase.cs : fix wrong loop implementation.

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

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

index 6f718bf6074484acd65f17ff9ae62f1b63999398..71bd93767defcfeab775bf48c6d8f90ed52f64fd 100755 (executable)
@@ -1,3 +1,7 @@
+2009-07-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DuplexChannelBase.cs : fix wrong loop implementation.
+
 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
 
        * TcpChannelListener.cs : to avoid creating two or more channels
index 0bda54781aef52f7d0ca25be9b656ecd19b2e42d..5d8479a418b131de6500c2d89243aa77c780e226 100644 (file)
@@ -174,7 +174,13 @@ namespace System.ServiceModel.Channels
                
                public virtual bool TryReceive (TimeSpan timeout, out Message message)
                {
-                       return EndTryReceive (BeginTryReceive (timeout, null, null), out message);
+                       try {
+                               message = Receive (timeout);
+                               return true;
+                       } catch (TimeoutException) {
+                               message = null;
+                               return false;
+                       }
                }
 
                // WaitForMessage