]> git.deb.at Git - rhonda/impostor.hazel.git/commitdiff
Use consuming enumerator for queue processing
authorMatthew Endsley <mendsley@gmail.com>
Wed, 3 Feb 2021 09:15:10 +0000 (01:15 -0800)
committerMatthew Endsley <mendsley@gmail.com>
Wed, 3 Feb 2021 22:40:54 +0000 (14:40 -0800)
This changes avoids us needing to write the proper error-checking code
to see if a queue has been completed vs some unrelated failure.

Hazel/FewerThreads/ThreadLimitedUdpConnectionListener.cs

index 98f83011bb9bfa2990e4cf0865e3b7f19c21cc9e..d3b9fa53d04233486a009758232906b92b092fe6 100644 (file)
@@ -222,10 +222,8 @@ namespace Hazel.Udp.FewerThreads
         }
         private void ProcessingLoop()
         {
-            while (this.isActive)
+            foreach (ReceiveMessageInfo msg in this.receiveQueue.GetConsumingEnumerable())
             {
-                ReceiveMessageInfo msg = this.receiveQueue.Take();
-                
                 try
                 {
                     this.ReadCallback(msg.Message, msg.Sender, msg.ConnectionId);
@@ -243,10 +241,8 @@ namespace Hazel.Udp.FewerThreads
 
         private void SendLoop()
         {
-            while (this.isActive)
+            foreach (SendMessageInfo msg in this.sendQueue.GetConsumingEnumerable())
             {
-                SendMessageInfo msg = this.sendQueue.Take();
-
                 try
                 {
                     if (this.socket.Poll(Timeout.Infinite, SelectMode.SelectWrite))