public void OnConnectionClosed(Exception ex) { Debug.Assert(_frame != null, $"{nameof(_frame)} is null"); // Abort the connection (if not already aborted) _frame.Abort(ex); _socketClosedTcs.TrySetResult(null); }
private async Task WriteOutputAsync(LibuvOutputConsumer consumer, IPipeReader outputReader, Frame frame) { // This WriteOutputAsync() calling code is equivalent to that in LibuvConnection. try { // Ensure that outputReader.Complete() runs on the LibuvThread. // Without ConfigureAwait(false), xunit will dispatch. await consumer.WriteOutputAsync().ConfigureAwait(false); frame.Abort(error: null); outputReader.Complete(); } catch (UvException ex) { frame.Abort(ex); outputReader.Complete(ex); } }