From 020015125ede29fd9a0e6bda5e15c9e48a46ce44 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 19 Dec 2024 02:15:43 +0300 Subject: [PATCH] version 3.0.0-dev.12 : return of valueTask from a cancelled token --- src/Asv.IO/Protocol/Connection/Endpoint/ProtocolEndpoint.cs | 1 + src/Asv.IO/Protocol/Connection/Port/ProtocolPort.cs | 1 + src/Asv.IO/Protocol/Connection/Virtual/VirtualPort.cs | 1 + src/Directory.Build.props | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Asv.IO/Protocol/Connection/Endpoint/ProtocolEndpoint.cs b/src/Asv.IO/Protocol/Connection/Endpoint/ProtocolEndpoint.cs index 5f37cca..4d5b3ba 100644 --- a/src/Asv.IO/Protocol/Connection/Endpoint/ProtocolEndpoint.cs +++ b/src/Asv.IO/Protocol/Connection/Endpoint/ProtocolEndpoint.cs @@ -195,6 +195,7 @@ private async void WriteLoop(object? o) public override ValueTask Send(IProtocolMessage message, CancellationToken cancel = default) { + if (cancel.IsCancellationRequested) return ValueTask.FromCanceled(cancel); if (IsDisposed) return ValueTask.CompletedTask; if (_lastError.CurrentValue != null) return ValueTask.CompletedTask; return _txChannel.Writer.WriteAsync(message, cancel); diff --git a/src/Asv.IO/Protocol/Connection/Port/ProtocolPort.cs b/src/Asv.IO/Protocol/Connection/Port/ProtocolPort.cs index d760a68..633beff 100644 --- a/src/Asv.IO/Protocol/Connection/Port/ProtocolPort.cs +++ b/src/Asv.IO/Protocol/Connection/Port/ProtocolPort.cs @@ -244,6 +244,7 @@ private void ReconnectAfterError(object? state) public override async ValueTask Send(IProtocolMessage message, CancellationToken cancel = default) { if (IsDisposed) return; + cancel.ThrowIfCancellationRequested(); var newMessage = await InternalFilterTxMessage(message); if (newMessage == null) return; var endpoints = _endpoints; diff --git a/src/Asv.IO/Protocol/Connection/Virtual/VirtualPort.cs b/src/Asv.IO/Protocol/Connection/Virtual/VirtualPort.cs index fef9596..0bf5933 100644 --- a/src/Asv.IO/Protocol/Connection/Virtual/VirtualPort.cs +++ b/src/Asv.IO/Protocol/Connection/Virtual/VirtualPort.cs @@ -56,6 +56,7 @@ public void SetTxFilter(Func filter) public override ValueTask Send(IProtocolMessage message, CancellationToken cancel = default) { + if (cancel.IsCancellationRequested) return ValueTask.FromCanceled(cancel); if (IsDisposed) return ValueTask.CompletedTask; if (_sendFilter(message) == false) return ValueTask.CompletedTask; try diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 9169fb0..d164300 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - 3.0.0-dev.11 + 3.0.0-dev.12 3.0.0 1.2.9 13.0.3