From 3205499747e18b9a3c4b0b306cbe4f7ae5052be9 Mon Sep 17 00:00:00 2001 From: Ahmed Zamil Date: Sat, 8 Feb 2020 11:57:00 +0300 Subject: [PATCH] AsyncQueue Fix --- Esyur/Core/AsyncQueue.cs | 1 + Esyur/Core/AsyncReplyBuilder.cs | 6 ++---- Esyur/Core/AsyncReplyBuilderGeneric.cs | 6 ++---- Esyur/Esyur.csproj | 2 +- Esyur/Net/Sockets/TCPSocket.cs | 19 ++++++++++++++----- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Esyur/Core/AsyncQueue.cs b/Esyur/Core/AsyncQueue.cs index 24a8bd6..d3e2a00 100644 --- a/Esyur/Core/AsyncQueue.cs +++ b/Esyur/Core/AsyncQueue.cs @@ -66,6 +66,7 @@ namespace Esyur.Core if (list[i].Ready) { Trigger(list[i].Result); + resultReady = false; list.RemoveAt(i); i--; } diff --git a/Esyur/Core/AsyncReplyBuilder.cs b/Esyur/Core/AsyncReplyBuilder.cs index 7478a4d..3456d8e 100644 --- a/Esyur/Core/AsyncReplyBuilder.cs +++ b/Esyur/Core/AsyncReplyBuilder.cs @@ -45,8 +45,7 @@ namespace Esyur.Core where TAwaiter : INotifyCompletion where TStateMachine : IAsyncStateMachine { - Console.WriteLine("AwaitOnCompleted"); - + awaiter.OnCompleted(stateMachine.MoveNext); } public void AwaitUnsafeOnCompleted( @@ -54,8 +53,7 @@ namespace Esyur.Core where TAwaiter : ICriticalNotifyCompletion where TStateMachine : IAsyncStateMachine { - Console.WriteLine("AwaitUnsafeOnCompleted"); - + awaiter.UnsafeOnCompleted(stateMachine.MoveNext); } public AsyncReply Task diff --git a/Esyur/Core/AsyncReplyBuilderGeneric.cs b/Esyur/Core/AsyncReplyBuilderGeneric.cs index 1a24060..ad4594b 100644 --- a/Esyur/Core/AsyncReplyBuilderGeneric.cs +++ b/Esyur/Core/AsyncReplyBuilderGeneric.cs @@ -45,8 +45,7 @@ namespace Esyur.Core where TAwaiter : INotifyCompletion where TStateMachine : IAsyncStateMachine { - Console.WriteLine("AwaitOnCompleted"); - + awaiter.OnCompleted(stateMachine.MoveNext); } public void AwaitUnsafeOnCompleted( @@ -54,8 +53,7 @@ namespace Esyur.Core where TAwaiter : ICriticalNotifyCompletion where TStateMachine : IAsyncStateMachine { - Console.WriteLine("AwaitUnsafeOnCompleted"); - + awaiter.UnsafeOnCompleted(stateMachine.MoveNext); } public AsyncReply Task diff --git a/Esyur/Esyur.csproj b/Esyur/Esyur.csproj index bef8684..ccfb857 100644 --- a/Esyur/Esyur.csproj +++ b/Esyur/Esyur.csproj @@ -7,7 +7,7 @@ https://github.com/Esyur/Esyur-dotnet/blob/master/LICENSE http://www.esyur.com true - 1.4.8 + 1.4.9 https://github.com/esyur/esyur-dotnet Ahmed Kh. Zamil 1.3.1.0 diff --git a/Esyur/Net/Sockets/TCPSocket.cs b/Esyur/Net/Sockets/TCPSocket.cs index 9cb6f53..5a77445 100644 --- a/Esyur/Net/Sockets/TCPSocket.cs +++ b/Esyur/Net/Sockets/TCPSocket.cs @@ -389,15 +389,24 @@ namespace Esyur.Net.Sockets } catch (Exception ex) { - kv.Key.Trigger(false); + asyncSending = false; - if (state != SocketState.Closed && !sock.Connected) + try { - state = SocketState.Terminated; - Close(); + kv.Key.Trigger(false); + + if (state != SocketState.Closed && !sock.Connected) + { + state = SocketState.Terminated; + Close(); + } + } + catch (Exception ex2) + { + Console.WriteLine("Level 2 {0}", ex2); } - asyncSending = false; + Global.Log("TCPSocket", LogType.Error, ex.ToString()); }