< Summary

Class:DCL.Helpers.TaskUtils
Assembly:UniTaskUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/TaskUtils/TaskUtils.cs
Covered lines:11
Uncovered lines:9
Coverable lines:20
Total lines:87
Line coverage:55% (11 of 20)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Run()0%10.45040%
Run()0%21.527033.33%
RunThrottledCoroutine()0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/TaskUtils/TaskUtils.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using System.Threading;
 4using Cysharp.Threading.Tasks;
 5
 6namespace DCL.Helpers
 7{
 8    public static class TaskUtils
 9    {
 010        private static BaseVariable<bool> multithreading => DataStore.i.performance.multithreading;
 11        public static async UniTask Run(Action action, CancellationToken cancellationToken = default, bool returnToMainT
 12        {
 121613            if (Configuration.EnvironmentSettings.RUNNING_TESTS)
 14            {
 121615                action();
 121616                return;
 17            }
 18
 019            cancellationToken.ThrowIfCancellationRequested();
 20
 021            if (multithreading.Get())
 22            {
 023                await UniTask.RunOnThreadPool(action, returnToMainThread, cancellationToken);
 24            }
 25            else
 26            {
 027                action();
 28            }
 121629        }
 30
 31        public static async UniTask Run(Func<UniTask> action, CancellationToken cancellationToken = default, bool return
 32        {
 3133            if (Configuration.EnvironmentSettings.RUNNING_TESTS)
 34            {
 3135                action();
 3136                return;
 37            }
 38
 039            cancellationToken.ThrowIfCancellationRequested();
 40
 041            if (multithreading.Get())
 42            {
 043                await UniTask.RunOnThreadPool(action, returnToMainThread, cancellationToken);
 44            }
 45            else
 46            {
 047                await UniTask.Create(action).AttachExternalCancellation(cancellationToken);
 48            }
 3149        }
 50
 51        public static async UniTask<T> Run<T>(Func<UniTask<T>> action, CancellationToken cancellationToken = default, bo
 52        {
 53            cancellationToken.ThrowIfCancellationRequested();
 54
 55            if (multithreading.Get())
 56            {
 57                return await UniTask.RunOnThreadPool(action, returnToMainThread, cancellationToken);
 58            }
 59
 60            return await UniTask.Create(action).AttachExternalCancellation(cancellationToken);
 61        }
 62
 63        public static async UniTask<T> Run<T>(Func<T> action, CancellationToken cancellationToken = default, bool return
 64        {
 65            if (Configuration.EnvironmentSettings.RUNNING_TESTS)
 66            {
 67                return action();
 68            }
 69
 70            cancellationToken.ThrowIfCancellationRequested();
 71
 72            if (multithreading.Get())
 73            {
 74                return await UniTask.RunOnThreadPool(action, returnToMainThread, cancellationToken);
 75            }
 76
 77            return action();
 78        }
 79
 80        public static async UniTask RunThrottledCoroutine(IEnumerator enumerator, Action<Exception> onFail, Func<double,
 81        {
 43982            IEnumerator routine = DCLCoroutineRunner.Run(enumerator, onFail, timeBudget);
 131783            await routine.ToUniTask(CoroutineStarter.instance);
 43984        }
 85
 86    }
 87}