diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs index 2a38af6..8ac8a29 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.Delay.cs @@ -256,7 +256,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -361,7 +363,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -468,7 +472,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -595,7 +601,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -739,7 +747,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -865,7 +875,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -989,7 +1001,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.WaitUntil.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.WaitUntil.cs index eccf2c3..d126199 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.WaitUntil.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTask.WaitUntil.cs @@ -99,7 +99,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -218,7 +220,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -336,7 +340,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -450,7 +456,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -587,7 +595,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AssetBundleRequestAllAssets.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AssetBundleRequestAllAssets.cs index efe5292..043e1b8 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AssetBundleRequestAllAssets.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AssetBundleRequestAllAssets.cs @@ -159,7 +159,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -227,19 +229,17 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else - { - core.TrySetResult(asyncOperation.allAssets); - } + core.TrySetResult(asyncOperation.allAssets); } } } diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AsyncGPUReadback.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AsyncGPUReadback.cs index 53f6ae4..a363be7 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AsyncGPUReadback.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.AsyncGPUReadback.cs @@ -94,7 +94,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs index 5ec9da3..5a5ea1c 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs @@ -155,7 +155,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -220,19 +222,16 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else - { - core.TrySetResult(AsyncUnit.Default); - } + core.TrySetResult(AsyncUnit.Default); } } } @@ -382,7 +381,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -451,19 +452,16 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else - { - core.TrySetResult(asyncOperation.asset); - } + core.TrySetResult(asyncOperation.asset); } } } @@ -614,7 +612,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -683,19 +683,16 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else - { - core.TrySetResult(asyncOperation.asset); - } + core.TrySetResult(asyncOperation.asset); } } } @@ -847,7 +844,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -916,19 +915,16 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else - { - core.TrySetResult(asyncOperation.assetBundle); - } + core.TrySetResult(asyncOperation.assetBundle); } } } @@ -1096,7 +1092,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -1173,23 +1171,20 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); + } + else if (asyncOperation.webRequest.IsError()) + { + core.TrySetException(new UnityWebRequestException(asyncOperation.webRequest)); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } - else if (asyncOperation.webRequest.IsError()) - { - core.TrySetException(new UnityWebRequestException(asyncOperation.webRequest)); - } - else - { - core.TrySetResult(asyncOperation.webRequest); - } + core.TrySetResult(asyncOperation.webRequest); } } } diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt index ebcfa93..e2437df 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt @@ -230,7 +230,9 @@ namespace Cysharp.Threading.Tasks finally { if (!(cancelImmediately && cancellationToken.IsCancellationRequested)) + { TryReturn(); + } } } @@ -315,31 +317,28 @@ namespace Cysharp.Threading.Tasks { if (completed) { - TryReturn(); + return; + } + completed = true; + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); + } +<# if(IsUnityWebRequest(t)) { #> + else if (asyncOperation.webRequest.IsError()) + { + core.TrySetException(new UnityWebRequestException(asyncOperation.webRequest)); } else { - completed = true; - if (cancellationToken.IsCancellationRequested) - { - core.TrySetCanceled(cancellationToken); - } -<# if(IsUnityWebRequest(t)) { #> - else if (asyncOperation.webRequest.IsError()) - { - core.TrySetException(new UnityWebRequestException(asyncOperation.webRequest)); - } - else - { - core.TrySetResult(asyncOperation.webRequest); - } -<# } else { #> - else - { - core.TrySetResult(<#= IsVoid(t) ? "AsyncUnit.Default" : $"asyncOperation.{t.returnField}" #>); - } -<# } #> + core.TrySetResult(asyncOperation.webRequest); } +<# } else { #> + else + { + core.TrySetResult(<#= IsVoid(t) ? "AsyncUnit.Default" : $"asyncOperation.{t.returnField}" #>); + } +<# } #> } }