Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }