Files
UnrealEngine/Engine/Source/Programs/Horde/HordeServer.Shared/Utilities/RedisExtensions.cs
2025-05-18 13:04:45 +08:00

30 lines
731 B
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using StackExchange.Redis;
namespace HordeServer.Utilities;
/// <summary>
/// Extensions for Redis classes
/// </summary>
public static class RedisExtensions
{
/// <summary>
/// Await given tasks and swallow any task cancellation exceptions.
/// Useful to do after (failing) transaction to ensure no trailing tasks are left unawaited
/// </summary>
/// <param name="transaction"></param>
/// <param name="tasks">Tasks to await</param>
public static async Task WaitAndIgnoreCancellationsAsync(this ITransaction transaction, params Task[] tasks)
{
_ = transaction;
try
{
await Task.WhenAll(tasks);
}
catch (TaskCanceledException)
{
/* Ignore */
}
}
}