public async Task StopAsync(CancellationToken cancellationToken = default(CancellationToken)) { _cts?.Cancel(); await(_transportListener?.StopAsync() ?? Task.CompletedTask); ListenerSemaphore.Release(); }
public async Task TeardownAsync() { await _clientTcpTransport.CloseAsync(CancellationToken.None); await _serverTcpTransport.CloseAsync(CancellationToken.None); await _tcpTransportListener.StopAsync(_cancellationToken); }