< Summary

Class:DCL.Tasks.CancellationTokenExtensions
Assembly:TaskHelpers
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Tasks/CancellationTokenExtensions.cs
Covered lines:12
Uncovered lines:6
Coverable lines:18
Total lines:55
Line coverage:66.6% (12 of 18)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:3
Method coverage:66.6% (2 of 3)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SafeRestart(...)0%330100%
SafeRestartLinked(...)0%12300%
SafeCancelAndDispose(...)0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Tasks/CancellationTokenExtensions.cs

#LineLine coverage
 1using JetBrains.Annotations;
 2using System;
 3using System.Threading;
 4
 5namespace DCL.Tasks
 6{
 7    public static class CancellationTokenExtensions
 8    {
 9        [Pure]
 10        public static CancellationTokenSource SafeRestart(this CancellationTokenSource cancellationToken)
 11        {
 12            try
 13            {
 179714                cancellationToken?.Cancel();
 178815                cancellationToken?.Dispose();
 178816            }
 917            catch (ObjectDisposedException)
 18            {
 19                // ignore
 920            }
 21
 179722            return new CancellationTokenSource();
 23        }
 24
 25        [Pure]
 26        public static CancellationTokenSource SafeRestartLinked(this CancellationTokenSource cancellationToken,
 27            params CancellationToken[] cancellationTokens)
 28        {
 29            try
 30            {
 031                cancellationToken?.Cancel();
 032                cancellationToken?.Dispose();
 033            }
 034            catch (ObjectDisposedException)
 35            {
 36                // ignore
 037            }
 38
 039            return CancellationTokenSource.CreateLinkedTokenSource(cancellationTokens);
 40        }
 41
 42        public static void SafeCancelAndDispose(this CancellationTokenSource cancellationToken)
 43        {
 44            try
 45            {
 436546                cancellationToken?.Cancel();
 398347                cancellationToken?.Dispose();
 398348            }
 38249            catch (ObjectDisposedException)
 50            {
 51                // ignore
 38252            }
 436553        }
 54    }
 55}