private void ReadFromApp(IoUringConnectionContext context) { var readResult = context.Output.ReadAsync(); context.ReadResult = readResult; if (readResult.IsCompletedSuccessfully) { Debug.WriteLine($"Read from app synchronously {(int)context.Socket}"); // unlikely context.ReadFromAppSynchronously(); Write(context); return; } readResult.GetAwaiter().UnsafeOnCompleted(context.OnReadFromApp); }
private void ReadFromApp(IoUringConnectionContext context) { var readResult = context.Output.ReadAsync(); context.ReadResult = readResult; if (readResult.IsCompleted) { Debug.WriteLine($"Read from app for {(int)context.Socket} synchronously"); IoUringTransportEventSource.Log.ReportSyncReadAsync(); context.ReadFromAppSynchronously(); PollWrite(context); } else { // likely IoUringTransportEventSource.Log.ReportAsyncReadAsync(); readResult.GetAwaiter().UnsafeOnCompleted(context.OnReadFromApp); } }