File tree Expand file tree Collapse file tree 1 file changed +17
-9
lines changed
projects/RabbitMQ.Client/client/impl Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Original file line number Diff line number Diff line change @@ -286,21 +286,29 @@ public void Write(ReadOnlyMemory<byte> memory)
286
286
287
287
private async Task WriteLoop ( )
288
288
{
289
- while ( await _channelReader . WaitToReadAsync ( ) . ConfigureAwait ( false ) )
289
+ try
290
290
{
291
- while ( _channelReader . TryRead ( out ReadOnlyMemory < byte > memory ) )
291
+ while ( await _channelReader . WaitToReadAsync ( ) . ConfigureAwait ( false ) )
292
292
{
293
- MemoryMarshal . TryGetArray ( memory , out ArraySegment < byte > segment ) ;
293
+ while ( _channelReader . TryRead ( out ReadOnlyMemory < byte > memory ) )
294
+ {
295
+ MemoryMarshal . TryGetArray ( memory , out ArraySegment < byte > segment ) ;
294
296
#if NETSTANDARD
295
- await _writer . WriteAsync ( segment . Array , segment . Offset , segment . Count ) . ConfigureAwait ( false ) ;
297
+ await _writer . WriteAsync ( segment . Array , segment . Offset , segment . Count ) . ConfigureAwait ( false ) ;
296
298
#else
297
- await _writer . WriteAsync ( memory ) . ConfigureAwait ( false ) ;
299
+ await _writer . WriteAsync ( memory ) . ConfigureAwait ( false ) ;
298
300
#endif
299
- RabbitMqClientEventSource . Log . CommandSent ( segment . Count ) ;
300
- ArrayPool < byte > . Shared . Return ( segment . Array ) ;
301
- }
301
+ RabbitMqClientEventSource . Log . CommandSent ( segment . Count ) ;
302
+ ArrayPool < byte > . Shared . Return ( segment . Array ) ;
303
+ }
302
304
303
- await _writer . FlushAsync ( ) . ConfigureAwait ( false ) ;
305
+ await _writer . FlushAsync ( ) . ConfigureAwait ( false ) ;
306
+ }
307
+ }
308
+ catch ( Exception ex )
309
+ {
310
+ ESLog . Error ( "Background socket write loop has crashed" , ex ) ;
311
+ throw ;
304
312
}
305
313
}
306
314
You can’t perform that action at this time.
0 commit comments