|
|
@ -210,18 +210,8 @@ namespace Grpc.Core |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary>Provides implementation of a non-virtual public member.</summary> |
|
|
|
/// Shuts down the channel cleanly. It is strongly recommended to shutdown |
|
|
|
protected override async Task ShutdownAsyncCore() |
|
|
|
/// 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() |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
lock (myLock) |
|
|
|
lock (myLock) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -246,13 +236,6 @@ namespace Grpc.Core |
|
|
|
await GrpcEnvironment.ReleaseAsync().ConfigureAwait(false); |
|
|
|
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> |
|
|
|
/// <summary> |
|
|
|
/// Create a new <see cref="CallInvoker"/> for the channel. |
|
|
|
/// Create a new <see cref="CallInvoker"/> for the channel. |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|