mirror of https://github.com/Cysharp/UniTask
It seems that the problem has not been completely resolved just now
parent
b06f10f974
commit
9d5a4a9f5a
|
@ -792,16 +792,20 @@ namespace UniRx.Async
|
||||||
|
|
||||||
public void UnsafeOnCompleted(Action continuation)
|
public void UnsafeOnCompleted(Action continuation)
|
||||||
{
|
{
|
||||||
if(asyncOperation != null && asyncOperation.isDone)
|
|
||||||
|
Error.ThrowWhenContinuationIsAlreadyRegistered(continuationAction);
|
||||||
|
continuationAction = continuation.AsFuncOfT<AsyncOperation>();
|
||||||
|
lock (asyncOperation)
|
||||||
|
{
|
||||||
|
if (asyncOperation.isDone)
|
||||||
{
|
{
|
||||||
continuation?.Invoke();
|
continuation?.Invoke();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Error.ThrowWhenContinuationIsAlreadyRegistered(continuationAction);
|
|
||||||
continuationAction = continuation.AsFuncOfT<AsyncOperation>();
|
|
||||||
asyncOperation.completed += continuationAction;
|
asyncOperation.completed += continuationAction;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class UnityWebRequestAsyncOperationConfiguredAwaiter : IAwaiter<UnityWebRequest>, IPlayerLoopItem
|
class UnityWebRequestAsyncOperationConfiguredAwaiter : IAwaiter<UnityWebRequest>, IPlayerLoopItem
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue