Skip to content

Commit ea2b883

Browse files
authored
chore: fix some async call issues in the .NET wrapper| (#740)
1 parent 180e765 commit ea2b883

3 files changed

Lines changed: 14 additions & 7 deletions

File tree

spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/GrpcBidiConnection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ protected override void CloseLibObject()
5858
private ConnectionStreamResponse ExecuteBidi(ConnectionStreamRequest request)
5959
{
6060
var connectionStream = Stream;
61-
connectionStream.RequestStream.WriteAsync(request).GetAwaiter().GetResult();
62-
if (!connectionStream.ResponseStream.MoveNext(CancellationToken.None).GetAwaiter().GetResult())
61+
Task.Run(() => connectionStream.RequestStream.WriteAsync(request)).GetAwaiter().GetResult();
62+
if (!Task.Run(() => connectionStream.ResponseStream.MoveNext(CancellationToken.None)).GetAwaiter().GetResult())
6363
{
6464
// This should never happen assuming that the gRPC server is well-behaved.
6565
throw new SpannerException(new Status { Code = (int)Code.Internal, Message = "No response received" });

spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/GrpcLibSpanner.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -416,11 +416,18 @@ public void BeginTransaction(Connection connection, TransactionOptions transacti
416416

417417
public async Task BeginTransactionAsync(Connection connection, TransactionOptions transactionOptions, CancellationToken cancellationToken = default)
418418
{
419-
await TranslateException(() => Client.BeginTransactionAsync(new BeginTransactionRequest
419+
try
420420
{
421-
Connection = ToProto(connection),
422-
TransactionOptions = transactionOptions,
423-
})).ConfigureAwait(false);
421+
await Client.BeginTransactionAsync(new BeginTransactionRequest
422+
{
423+
Connection = ToProto(connection),
424+
TransactionOptions = transactionOptions,
425+
}, cancellationToken: cancellationToken).ConfigureAwait(false);
426+
}
427+
catch (RpcException exception)
428+
{
429+
throw SpannerException.ToSpannerException(exception);
430+
}
424431
}
425432

426433
public CommitResponse? Commit(Connection connection)

spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/StreamingRows.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ private bool TryNextCached(out ListValue? result, CancellationToken cancellation
164164
_stream ??= _spanner.ContinueStreaming(SpannerConnection, Id);
165165
try
166166
{
167-
var hasNext = Task.Run(() => Stream.ResponseStream.MoveNext()).ResultWithUnwrappedExceptions();
167+
var hasNext = Task.Run(() => Stream.ResponseStream.MoveNext()).GetAwaiter().GetResult();
168168
if (!hasNext)
169169
{
170170
MarkDone();

0 commit comments

Comments
 (0)