summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2022-03-19 13:29:15 +0100
committerJens Geyer <jensg@apache.org>2022-03-19 13:30:16 +0100
commit56ec69e9f85d5937645e619a79eff3d4872c8f26 (patch)
tree8d766b020da2d3110258b850bfe360b6f865f4e7
parentcd810bba7cb2d8c37f48f48a895713c2b2b42a6c (diff)
downloadthrift-56ec69e9f85d5937645e619a79eff3d4872c8f26.tar.gz
Revert SHA-1: 52d263e77c48bbf7cbabd03161107557d1e410b1
Using sync calls breaks web scenarios. THRIFT-5499: Use blocking Read/Write calls to make sure the Receive/SendTimeout is checked. Client: netstd
-rw-r--r--lib/netstd/Thrift/Transport/Client/TStreamTransport.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/netstd/Thrift/Transport/Client/TStreamTransport.cs b/lib/netstd/Thrift/Transport/Client/TStreamTransport.cs
index 053a37ba1..90794c6b8 100644
--- a/lib/netstd/Thrift/Transport/Client/TStreamTransport.cs
+++ b/lib/netstd/Thrift/Transport/Client/TStreamTransport.cs
@@ -80,8 +80,11 @@ namespace Thrift.Transport.Client
"Cannot read from null inputstream");
}
- // The ReadAsync method should not be used since it does not check the ReceiveTimeout property.
- return await Task.Run( () => InputStream.Read( buffer, offset, length ), cancellationToken );
+#if NETSTANDARD2_0
+ return await InputStream.ReadAsync(buffer, offset, length, cancellationToken);
+#else
+ return await InputStream.ReadAsync(new Memory<byte>(buffer, offset, length), cancellationToken);
+#endif
}
public override async Task WriteAsync(byte[] buffer, int offset, int length, CancellationToken cancellationToken)
@@ -92,8 +95,11 @@ namespace Thrift.Transport.Client
"Cannot write to null outputstream");
}
- // The WriteAsync method should not be used since it does not check the SendTimeout property.
- await Task.Run( () => OutputStream.Write( buffer, offset, length ), cancellationToken );
+#if NETSTANDARD2_0
+ await OutputStream.WriteAsync(buffer, offset, length, cancellationToken);
+#else
+ await OutputStream.WriteAsync(buffer.AsMemory(offset, length), cancellationToken);
+#endif
}
public override async Task FlushAsync(CancellationToken cancellationToken)