review comments

pull/21667/head
Jan Tattermusch 5 years ago
parent abeac187b6
commit 32b487bc4d
  1. 10
      src/csharp/Grpc.Core.Api/ChannelBase.cs
  2. 21
      src/csharp/Grpc.Core/Channel.cs

@ -68,9 +68,15 @@ namespace Grpc.Core
}
/// <summary>Provides implementation of a non-virtual public member.</summary>
protected virtual Task ShutdownAsyncCore()
#pragma warning disable 1998
protected virtual async Task ShutdownAsyncCore()
{
throw new NotImplementedException();
// default implementation is no-op for backwards compatibility, but all implementations
// are expected to override this method.
// warning 1998 is disabled to avoid needing TaskUtils.CompletedTask, which is
// only available in Grpc.Core
}
#pragma warning restore 1998
}
}

@ -210,18 +210,8 @@ namespace Grpc.Core
}
}
/// <summary>
/// Shuts down the channel cleanly. It is strongly recommended to shutdown
/// all previously created channels before exiting from the process.
/// </summary>
/// <remarks>
/// This method doesn't wait for all calls on this channel to finish (nor does
/// it explicitly cancel all outstanding calls). It is user's responsibility to make sure
/// all the calls on this channel have finished (successfully or with an error)
/// before shutting down the channel to ensure channel shutdown won't impact
/// the outcome of those remote calls.
/// </remarks>
public new async Task ShutdownAsync()
/// <summary>Provides implementation of a non-virtual public member.</summary>
protected override async Task ShutdownAsyncCore()
{
lock (myLock)
{
@ -246,13 +236,6 @@ namespace Grpc.Core
await GrpcEnvironment.ReleaseAsync().ConfigureAwait(false);
}
/// <summary>Provides implementation of a non-virtual public member.</summary>
protected override Task ShutdownAsyncCore()
{
// use the same behavior for ChannelBase.ShutdownAsync as for Channel.Shutdown()
return ShutdownAsync();
}
/// <summary>
/// Create a new <see cref="CallInvoker"/> for the channel.
/// </summary>

Loading…
Cancel
Save