public async Task Stop() { await _startStopSemaphore.WaitAsync(); try { if (!_started) { return; } _started = false; _logger.Debug("Message pump for {Receiver} stopping...", _receiver); await _receiver.Stop(); _logger.Debug("Message pump for {Receiver} stopped.", _receiver); } finally { _startStopSemaphore.Release(); } }
public async Task Stop() { await _startStopSemaphore.WaitAsync(); try { if (!_started) { return; } _started = false; var sw = Stopwatch.StartNew(); _logger.Debug("Message pump for {Receiver} stopping...", _receiver); await _receiver.Stop(); _logger.Debug("Message pump for {Receiver} stopped in {Elapsed}.", _receiver, sw.Elapsed); } finally { _startStopSemaphore.Release(); } }