From e11f75b8fc29afb1e9006941ee44978eef76c151 Mon Sep 17 00:00:00 2001 From: Chris Nollstadt Date: Tue, 10 Jun 2025 19:10:56 -0400 Subject: [PATCH] Emit deadlock under heavy load from asp.net due to missing synch. context negation (ConfigureAwait(false)) #400 --- .../Transport/WebSockets/WebSocketTransport.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/SocketIOClient/Transport/WebSockets/WebSocketTransport.cs b/src/SocketIOClient/Transport/WebSockets/WebSocketTransport.cs index 017de71d..8db7e8f4 100644 --- a/src/SocketIOClient/Transport/WebSockets/WebSocketTransport.cs +++ b/src/SocketIOClient/Transport/WebSockets/WebSocketTransport.cs @@ -165,7 +165,13 @@ public override async Task SendAsync(IList items, CancellationTo if (items[0].Type == SerializedMessageType.Text) { var bytes = Encoding.UTF8.GetBytes(items[0].Text); - await SendAsync(TransportMessageType.Text, bytes, cancellationToken); + + ///// This causes deadlock on _sendLock.WaitAsync above + //await SendAsync(TransportMessageType.Text, bytes, cancellationToken); + /////// Should be + await SendAsync(TransportMessageType.Text, bytes, cancellationToken).ConfigureAwait(false); + /////// + Debug.WriteLine($"[WebSocket⬆] {items[0].Text}"); }