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()
