mirror of https://github.com/Cysharp/UniTask
fix DOTweenExt's TweenCancelBehaviour.CancelAwait
parent
07cf65c1ec
commit
f3e3ba8864
|
@ -86,7 +86,8 @@ namespace Cysharp.Threading.Tasks
|
|||
sealed class TweenConfiguredSource : IUniTaskSource, IPromisePoolItem
|
||||
{
|
||||
static readonly PromisePool<TweenConfiguredSource> pool = new PromisePool<TweenConfiguredSource>();
|
||||
static Action<object> CancellationCallbackDelegate = CancellationCallback;
|
||||
static readonly Action<object> CancellationCallbackDelegate = CancellationCallback;
|
||||
static readonly TweenCallback EmptyTweenCallback = () => { };
|
||||
|
||||
Tween tween;
|
||||
TweenCancelBehaviour cancelBehaviour;
|
||||
|
@ -137,16 +138,9 @@ namespace Cysharp.Threading.Tasks
|
|||
{
|
||||
cancellationTokenRegistration.Dispose();
|
||||
if (canceled)
|
||||
{
|
||||
if (cancelBehaviour == TweenCancelBehaviour.CancelAwait)
|
||||
{
|
||||
// already called TrySetCanceled, do nothing.
|
||||
}
|
||||
else
|
||||
{
|
||||
core.TrySetCanceled(cancellationToken);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
core.TrySetResult(AsyncUnit.Default);
|
||||
|
@ -189,7 +183,7 @@ namespace Cysharp.Threading.Tasks
|
|||
self.tween.Complete(true);
|
||||
break;
|
||||
case TweenCancelBehaviour.CancelAwait:
|
||||
self.canceled = true;
|
||||
self.tween.onKill = EmptyTweenCallback; // replace to empty(avoid callback after Caceled(instance is returned to pool.)
|
||||
self.core.TrySetCanceled(self.cancellationToken);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue