Repository: thrift
Updated Branches:
  refs/heads/master 3311a9b23 -> 9db23b7be


THRIFT-4183: Named pipe client blocks forever on Open() when there is no server 
at the other end
Client: C#
Patch: Jens Geyer

This closes #1258


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/9db23b7b
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/9db23b7b
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/9db23b7b

Branch: refs/heads/master
Commit: 9db23b7be330f47037b4e3e5e374eda5e38b0dfd
Parents: 3311a9b
Author: Jens Geyer <[email protected]>
Authored: Wed Apr 26 21:26:01 2017 +0200
Committer: Jens Geyer <[email protected]>
Committed: Thu Apr 27 00:29:52 2017 +0200

----------------------------------------------------------------------
 lib/csharp/src/Transport/TNamedPipeClientTransport.cs | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/9db23b7b/lib/csharp/src/Transport/TNamedPipeClientTransport.cs
----------------------------------------------------------------------
diff --git a/lib/csharp/src/Transport/TNamedPipeClientTransport.cs 
b/lib/csharp/src/Transport/TNamedPipeClientTransport.cs
index 9faa6e7..f87d1ec 100644
--- a/lib/csharp/src/Transport/TNamedPipeClientTransport.cs
+++ b/lib/csharp/src/Transport/TNamedPipeClientTransport.cs
@@ -22,6 +22,7 @@
  */
 
 using System.IO.Pipes;
+using System.Threading;
 
 namespace Thrift.Transport
 {
@@ -30,17 +31,20 @@ namespace Thrift.Transport
         private NamedPipeClientStream client;
         private string ServerName;
         private string PipeName;
+        private int ConnectTimeout;
 
-        public TNamedPipeClientTransport(string pipe)
+        public TNamedPipeClientTransport(string pipe, int timeout = 
Timeout.Infinite)
         {
             ServerName = ".";
             PipeName = pipe;
+            ConnectTimeout = timeout;
         }
 
-        public TNamedPipeClientTransport(string server, string pipe)
+        public TNamedPipeClientTransport(string server, string pipe, int 
timeout = Timeout.Infinite)
         {
             ServerName = (server != "") ? server : ".";
             PipeName = pipe;
+            ConnectTimeout = timeout;
         }
 
         public override bool IsOpen
@@ -55,7 +59,7 @@ namespace Thrift.Transport
                 throw new 
TTransportException(TTransportException.ExceptionType.AlreadyOpen);
             }
             client = new NamedPipeClientStream(ServerName, PipeName, 
PipeDirection.InOut, PipeOptions.None);
-            client.Connect();
+            client.Connect(ConnectTimeout);
         }
 
         public override void Close()

Reply via email to