2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-05-06 11:32:59 +00:00

AsyncQueue Fix

This commit is contained in:
Ahmed Zamil 2020-02-08 11:57:00 +03:00
parent 741819e11c
commit 3205499747
5 changed files with 20 additions and 14 deletions

View File

@ -66,6 +66,7 @@ namespace Esyur.Core
if (list[i].Ready)
{
Trigger(list[i].Result);
resultReady = false;
list.RemoveAt(i);
i--;
}

View File

@ -45,8 +45,7 @@ namespace Esyur.Core
where TAwaiter : INotifyCompletion
where TStateMachine : IAsyncStateMachine
{
Console.WriteLine("AwaitOnCompleted");
awaiter.OnCompleted(stateMachine.MoveNext);
}
public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(
@ -54,8 +53,7 @@ namespace Esyur.Core
where TAwaiter : ICriticalNotifyCompletion
where TStateMachine : IAsyncStateMachine
{
Console.WriteLine("AwaitUnsafeOnCompleted");
awaiter.UnsafeOnCompleted(stateMachine.MoveNext);
}
public AsyncReply Task

View File

@ -45,8 +45,7 @@ namespace Esyur.Core
where TAwaiter : INotifyCompletion
where TStateMachine : IAsyncStateMachine
{
Console.WriteLine("AwaitOnCompleted");
awaiter.OnCompleted(stateMachine.MoveNext);
}
public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(
@ -54,8 +53,7 @@ namespace Esyur.Core
where TAwaiter : ICriticalNotifyCompletion
where TStateMachine : IAsyncStateMachine
{
Console.WriteLine("AwaitUnsafeOnCompleted");
awaiter.UnsafeOnCompleted(stateMachine.MoveNext);
}
public AsyncReply<T> Task

View File

@ -7,7 +7,7 @@
<PackageLicenseUrl>https://github.com/Esyur/Esyur-dotnet/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>http://www.esyur.com</PackageProjectUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.4.8</Version>
<Version>1.4.9</Version>
<RepositoryUrl>https://github.com/esyur/esyur-dotnet</RepositoryUrl>
<Authors>Ahmed Kh. Zamil</Authors>
<AssemblyVersion>1.3.1.0</AssemblyVersion>

View File

@ -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());
}