Fix Task that ignores cancellation request

This commit is contained in:
Bond_009 2020-06-17 19:20:43 +02:00
parent fbefddbb81
commit 46276acc22

View File

@ -101,11 +101,18 @@ namespace Emby.Server.Implementations.Udp
{
while (!cancellationToken.IsCancellationRequested)
{
var infiniteTask = Task.Delay(-1, cancellationToken);
try
{
var result = await _udpSocket.ReceiveFromAsync(_receiveBuffer, SocketFlags.None, _endpoint).ConfigureAwait(false);
var task = _udpSocket.ReceiveFromAsync(_receiveBuffer, SocketFlags.None, _endpoint);
await Task.WhenAny(task, infiniteTask).ConfigureAwait(false);
cancellationToken.ThrowIfCancellationRequested();
if (!task.IsCompleted)
{
return;
}
var result = task.Result;
var text = Encoding.UTF8.GetString(_receiveBuffer, 0, result.ReceivedBytes);
if (text.Contains("who is JellyfinServer?", StringComparison.OrdinalIgnoreCase))