// --------------------------------------------------------------------------------------------------------------------
//
// Copyright (c) VRMADA, All rights reserved.
//
// --------------------------------------------------------------------------------------------------------------------
using System.Threading;
using System.Threading.Tasks;
using UltimateXR.Extensions.System.Threading;
using UnityEngine;
namespace UltimateXR.Extensions.Unity.IO
{
///
/// extensions.
///
public static class AsyncOperationExt
{
#region Public Methods
///
/// Creates an awaitable that finishes when the given finished.
///
/// Unity asynchronous operation object
/// Optional cancellation token, to cancel the operation
/// Awaitable returning the caller object
public static async Task Wait(this AsyncOperation self, CancellationToken ct = default)
{
await TaskExt.WaitUntil(() => self.isDone, ct);
return self;
}
#endregion
}
}