diff options
author | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2018-05-24 13:31:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-24 13:31:49 -0700 |
commit | b43741d10dc134f0d90443e8d6d00aeac5913a23 (patch) | |
tree | 30736944644637d4574ef9439ae217ff2986fc18 /src/csharp/Grpc.Core | |
parent | 628073d4c2a1ed3292c92a728918c2b493f82c20 (diff) | |
parent | 4dad711b6d99d64729ca2e27f5f9cac4a728532f (diff) |
Merge pull request #14577 from jtattermusch/csharp_remove_connectivity_watcher
Get rid of C# connectivity watcher task
Diffstat (limited to 'src/csharp/Grpc.Core')
-rw-r--r-- | src/csharp/Grpc.Core/Channel.cs | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs index abe19a6fc6..e9930b6fbc 100644 --- a/src/csharp/Grpc.Core/Channel.cs +++ b/src/csharp/Grpc.Core/Channel.cs @@ -44,8 +44,6 @@ namespace Grpc.Core readonly ChannelSafeHandle handle; readonly Dictionary<string, ChannelOption> options; - readonly Task connectivityWatcherTask; - bool shutdownRequested; /// <summary> @@ -86,9 +84,6 @@ namespace Grpc.Core this.handle = ChannelSafeHandle.CreateInsecure(target, nativeChannelArgs); } } - // TODO(jtattermusch): Workaround for https://github.com/GoogleCloudPlatform/google-cloud-dotnet/issues/822. - // Remove once retries are supported in C core - this.connectivityWatcherTask = RunConnectivityWatcherAsync(); GrpcEnvironment.RegisterChannel(this); } @@ -259,7 +254,7 @@ namespace Grpc.Core handle.Dispose(); } - await Task.WhenAll(GrpcEnvironment.ReleaseAsync(), connectivityWatcherTask).ConfigureAwait(false); + await GrpcEnvironment.ReleaseAsync().ConfigureAwait(false); } internal ChannelSafeHandle Handle @@ -317,34 +312,6 @@ namespace Grpc.Core } } - /// <summary> - /// Constantly Watches channel connectivity status to work around https://github.com/GoogleCloudPlatform/google-cloud-dotnet/issues/822 - /// </summary> - private async Task RunConnectivityWatcherAsync() - { - try - { - var lastState = State; - while (lastState != ChannelState.Shutdown) - { - lock (myLock) - { - if (shutdownRequested) - { - break; - } - } - - // ignore the result - await WaitForStateChangedInternalAsync(lastState, DateTime.UtcNow.AddSeconds(1)).ConfigureAwait(false); - lastState = State; - } - } - catch (ObjectDisposedException) { - // during shutdown, channel is going to be disposed. - } - } - private static void EnsureUserAgentChannelOption(Dictionary<string, ChannelOption> options) { var key = ChannelOptions.PrimaryUserAgentString; |