@@ -259,10 +259,8 @@ internal static async ValueTask<InboundFrame> ReadFromPipeAsync(PipeReader reade
259
259
. ConfigureAwait ( false ) ;
260
260
261
261
ReadOnlySequence < byte > buffer = result . Buffer ;
262
- if ( result . IsCompleted || buffer . Length == 0 )
263
- {
264
- throw new EndOfStreamException ( "Pipe is completed." ) ;
265
- }
262
+
263
+ MaybeThrowEndOfStream ( result , buffer ) ;
266
264
267
265
InboundFrame frame ;
268
266
// Loop until we have enough data to read an entire frame, or until the pipe is completed.
@@ -274,10 +272,7 @@ internal static async ValueTask<InboundFrame> ReadFromPipeAsync(PipeReader reade
274
272
result = await reader . ReadAsync ( )
275
273
. ConfigureAwait ( false ) ;
276
274
277
- if ( result . IsCompleted || buffer . Length == 0 )
278
- {
279
- throw new EndOfStreamException ( "Pipe is completed." ) ;
280
- }
275
+ MaybeThrowEndOfStream ( result , buffer ) ;
281
276
282
277
buffer = result . Buffer ;
283
278
}
@@ -291,10 +286,8 @@ internal static bool TryReadFrameFromPipe(PipeReader reader, uint maxMessageSize
291
286
if ( reader . TryRead ( out ReadResult result ) )
292
287
{
293
288
ReadOnlySequence < byte > buffer = result . Buffer ;
294
- if ( result . IsCompleted || buffer . Length == 0 )
295
- {
296
- throw new EndOfStreamException ( "Pipe is completed." ) ;
297
- }
289
+
290
+ MaybeThrowEndOfStream ( result , buffer ) ;
298
291
299
292
if ( TryReadFrame ( ref buffer , maxMessageSize , out frame ) )
300
293
{
@@ -377,6 +370,15 @@ public override string ToString()
377
370
{
378
371
return $ "(type={ Type } , channel={ Channel } , { Payload . Length } bytes of payload)";
379
372
}
373
+
374
+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
375
+ private static void MaybeThrowEndOfStream ( ReadResult result , ReadOnlySequence < byte > buffer )
376
+ {
377
+ if ( result . IsCompleted || buffer . Length == 0 )
378
+ {
379
+ throw new EndOfStreamException ( "Pipe is completed." ) ;
380
+ }
381
+ }
380
382
}
381
383
382
384
internal enum FrameType : int
0 commit comments