public async Task EnableEventsAsync(IEnumerable <EnableEventsRequest> requests) { await _writeLock.WaitAsync(); try { EventPipeProtocol.WriteMessage(new EnableEventsMessage(requests.ToList()), _pipe.Output); await _pipe.Output.FlushAsync(); } finally { _writeLock.Release(); } }
private async Task WriteLoop(PipeWriter writer, CancellationToken cancellationToken) { try { while (await _listener.Messages.WaitToReadAsync(cancellationToken)) { while (!cancellationToken.IsCancellationRequested && _listener.Messages.TryRead(out var message)) { EventPipeProtocol.WriteMessage(message, writer); } await writer.FlushAsync(); } } catch (OperationCanceledException) { // No-op, we're just shutting down. } }