fix: remove callback tcs on response

This commit is contained in:
Oliver Booth 2024-02-14 15:24:01 +00:00
parent de672241f7
commit d8d4510d0f
Signed by: oliverbooth
GPG Key ID: E60B570D1B7557B5
1 changed files with 6 additions and 2 deletions

View File

@ -236,12 +236,16 @@ public abstract class ClientNode : Node
{
if (packet is null) throw new ArgumentNullException(nameof(packet));
long callbackId = packet.CallbackId;
var completionSource = new TaskCompletionSource<ResponsePacket>();
if (!_callbackCompletionSources.TryAdd(packet.CallbackId, completionSource))
if (!_callbackCompletionSources.TryAdd(callbackId, completionSource))
throw new InvalidOperationException("Duplicate packet sent");
await SendPacketAsync(packet, cancellationToken);
return (TReceive)await completionSource.Task;
var response = (TReceive)await completionSource.Task;
_callbackCompletionSources.TryRemove(callbackId, out _);
return response;
}
/// <summary>