Merge pull request #203 from RamType0/FixCompletedTaskAsUniTaskAllocating

Suppress allocations around UniTask<T>.AsUniTask and UniTask.AsAsyncUnitUniTask
This commit is contained in:
Yoshifumi Kawai
2021-01-06 17:19:19 +09:00
committed by GitHub

View File

@@ -115,8 +115,13 @@ namespace Cysharp.Threading.Tasks
var status = this.source.GetStatus(this.token);
if (status.IsCompletedSuccessfully())
{
this.source.GetResult(this.token);
return CompletedTasks.AsyncUnit;
}
else if(this.source is IUniTaskSource<AsyncUnit> asyncUnitSource)
{
return new UniTask<AsyncUnit>(asyncUnitSource, this.token);
}
return new UniTask<AsyncUnit>(new AsyncUnitSource(this.source), this.token);
}
@@ -422,6 +427,7 @@ namespace Cysharp.Threading.Tasks
var status = this.source.GetStatus(this.token);
if (status.IsCompletedSuccessfully())
{
this.source.GetResult(this.token);
return UniTask.CompletedTask;
}