From 3bf297d189244407dd65d58398540d9c67177bb1 Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Thu, 1 Jun 2023 22:49:47 -0500 Subject: [PATCH] Use ConcurrentQueue --- .../Iris/Debug/SystemNet/NetDebuggerServer.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/UIX/Microsoft/Iris/Debug/SystemNet/NetDebuggerServer.cs b/UIX/Microsoft/Iris/Debug/SystemNet/NetDebuggerServer.cs index 7c1cb6c..7f2e734 100644 --- a/UIX/Microsoft/Iris/Debug/SystemNet/NetDebuggerServer.cs +++ b/UIX/Microsoft/Iris/Debug/SystemNet/NetDebuggerServer.cs @@ -1,11 +1,9 @@ using Microsoft.Iris.Debug.Data; using System; -using System.Collections.Generic; +using System.Collections.Concurrent; using System.IO; -using System.Net; using System.Net.Sockets; using System.Runtime.Serialization; -using System.Text; namespace Microsoft.Iris.Debug.SystemNet; @@ -15,7 +13,7 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable public Uri ConnectionUri { get; } - private readonly Queue _outQueue = new(); + private readonly ConcurrentQueue _outQueue = new(); private readonly TcpListener _listener; private readonly IFormatter _formatter; private Socket _socket; @@ -89,9 +87,9 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable { while (_socket.Connected) { - while (_outQueue.Count == 0) ; + byte[] frameBytes; + while (!_outQueue.TryDequeue(out frameBytes)) ; - var frameBytes = _outQueue.Dequeue(); _socket.Send(BitConverter.GetBytes(frameBytes.Length)); _socket.Send(frameBytes); }