< 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:10
Uncovered lines:11
Coverable lines:21
Total lines:52
Line coverage:47.6% (10 of 21)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Run()0%14.518053.33%
Run()0%72800%
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    {
 88610        private static BaseVariable<bool> multithreading => DataStore.i.performance.multithreading;
 11        public static async UniTask Run(Action action, CancellationToken cancellationToken = default)
 12        {
 88613            cancellationToken.ThrowIfCancellationRequested();
 14
 88615            if (multithreading.Get())
 16            {
 017                await UniTask.RunOnThreadPool(action, true, cancellationToken);
 018                await UniTask.SwitchToMainThread();
 019            }
 20            else
 21            {
 265822                await UniTask.Yield(cancellationToken);
 88423                action();
 24            }
 25
 88426            cancellationToken.ThrowIfCancellationRequested();
 88427        }
 28
 29        public static async UniTask Run(Func<UniTask> action, CancellationToken cancellationToken = default)
 30        {
 031            cancellationToken.ThrowIfCancellationRequested();
 32
 033            if (multithreading.Get())
 34            {
 035                await UniTask.RunOnThreadPool(action, true, cancellationToken);
 036                await UniTask.SwitchToMainThread();
 037            }
 38            else
 39            {
 040                await UniTask.Create(action).AttachExternalCancellation(cancellationToken);
 41            }
 42
 043            cancellationToken.ThrowIfCancellationRequested();
 044        }
 45
 46        public static async UniTask RunThrottledCoroutine(IEnumerator enumerator, Action<Exception> onFail, Func<double,
 47        {
 10248            IEnumerator routine = DCLCoroutineRunner.Run(enumerator, onFail, timeBudget);
 30549            await routine.ToUniTask(CoroutineStarter.instance);
 10150        }
 51    }
 52}