Merge pull request #148 from RamType-0/TaskPoolNodeByRef

Use ref T for ITaskPoolNode<T>.NextNode
master
Yoshifumi Kawai 2020-09-07 15:33:22 +09:00 committed by GitHub
commit fe462328ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 88 additions and 47 deletions

View File

@ -62,7 +62,8 @@ namespace Cysharp.Threading.Tasks
sealed class ThreadPoolWorkItem : IThreadPoolWorkItem, ITaskPoolNode<ThreadPoolWorkItem> sealed class ThreadPoolWorkItem : IThreadPoolWorkItem, ITaskPoolNode<ThreadPoolWorkItem>
{ {
static TaskPool<ThreadPoolWorkItem> pool; static TaskPool<ThreadPoolWorkItem> pool;
public ThreadPoolWorkItem NextNode { get; set; } ThreadPoolWorkItem nextNode;
public ref ThreadPoolWorkItem NextNode => ref nextNode;
static ThreadPoolWorkItem() static ThreadPoolWorkItem()
{ {

View File

@ -87,7 +87,8 @@ namespace Cysharp.Threading.Tasks
static Action<object> cancellationCallback = CancellationCallback; static Action<object> cancellationCallback = CancellationCallback;
static TaskPool<WaitAsyncSource> pool; static TaskPool<WaitAsyncSource> pool;
WaitAsyncSource ITaskPoolNode<WaitAsyncSource>.NextNode { get; set; } WaitAsyncSource nextNode;
ref WaitAsyncSource ITaskPoolNode<WaitAsyncSource>.NextNode => ref nextNode;
static WaitAsyncSource() static WaitAsyncSource()
{ {
@ -404,7 +405,8 @@ namespace Cysharp.Threading.Tasks
static Action<object> cancellationCallback = CancellationCallback; static Action<object> cancellationCallback = CancellationCallback;
static TaskPool<WaitAsyncSource> pool; static TaskPool<WaitAsyncSource> pool;
WaitAsyncSource ITaskPoolNode<WaitAsyncSource>.NextNode { get; set; } WaitAsyncSource nextNode;
ref WaitAsyncSource ITaskPoolNode<WaitAsyncSource>.NextNode => ref nextNode;
static WaitAsyncSource() static WaitAsyncSource()
{ {

View File

@ -87,7 +87,8 @@ namespace Cysharp.Threading.Tasks.CompilerServices
TaskPool.RegisterSizeGetter(typeof(AsyncUniTaskVoid<TStateMachine>), () => pool.Size); TaskPool.RegisterSizeGetter(typeof(AsyncUniTaskVoid<TStateMachine>), () => pool.Size);
} }
public AsyncUniTaskVoid<TStateMachine> NextNode { get; set; } AsyncUniTaskVoid<TStateMachine> nextNode;
public ref AsyncUniTaskVoid<TStateMachine> NextNode => ref nextNode;
public void Return() public void Return()
{ {
@ -157,7 +158,8 @@ namespace Cysharp.Threading.Tasks.CompilerServices
result.stateMachine = stateMachine; // copy struct StateMachine(in release build). result.stateMachine = stateMachine; // copy struct StateMachine(in release build).
} }
public AsyncUniTask<TStateMachine> NextNode { get; set; } AsyncUniTask<TStateMachine> nextNode;
public ref AsyncUniTask<TStateMachine> NextNode => ref nextNode;
static AsyncUniTask() static AsyncUniTask()
{ {
@ -279,7 +281,8 @@ namespace Cysharp.Threading.Tasks.CompilerServices
result.stateMachine = stateMachine; // copy struct StateMachine(in release build). result.stateMachine = stateMachine; // copy struct StateMachine(in release build).
} }
public AsyncUniTask<TStateMachine, T> NextNode { get; set; } AsyncUniTask<TStateMachine, T> nextNode;
public ref AsyncUniTask<TStateMachine, T> NextNode => ref nextNode;
static AsyncUniTask() static AsyncUniTask()
{ {

View File

@ -35,7 +35,8 @@ namespace Cysharp.Threading.Tasks
sealed class EnumeratorPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<EnumeratorPromise> sealed class EnumeratorPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<EnumeratorPromise>
{ {
static TaskPool<EnumeratorPromise> pool; static TaskPool<EnumeratorPromise> pool;
public EnumeratorPromise NextNode { get; set; } EnumeratorPromise nextNode;
public ref EnumeratorPromise NextNode => ref nextNode;
static EnumeratorPromise() static EnumeratorPromise()
{ {

View File

@ -94,7 +94,8 @@ namespace Cysharp.Threading.Tasks
sealed class AsyncOperationHandleConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationHandleConfiguredSource> sealed class AsyncOperationHandleConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationHandleConfiguredSource>
{ {
static TaskPool<AsyncOperationHandleConfiguredSource> pool; static TaskPool<AsyncOperationHandleConfiguredSource> pool;
public AsyncOperationHandleConfiguredSource NextNode { get; set; } AsyncOperationHandleConfiguredSource nextNode;
public ref AsyncOperationHandleConfiguredSource NextNode => ref nextNode;
static AsyncOperationHandleConfiguredSource() static AsyncOperationHandleConfiguredSource()
{ {
@ -259,7 +260,8 @@ namespace Cysharp.Threading.Tasks
sealed class AsyncOperationHandleConfiguredSource<T> : IUniTaskSource<T>, IPlayerLoopItem, ITaskPoolNode<AsyncOperationHandleConfiguredSource<T>> sealed class AsyncOperationHandleConfiguredSource<T> : IUniTaskSource<T>, IPlayerLoopItem, ITaskPoolNode<AsyncOperationHandleConfiguredSource<T>>
{ {
static TaskPool<AsyncOperationHandleConfiguredSource<T>> pool; static TaskPool<AsyncOperationHandleConfiguredSource<T>> pool;
public AsyncOperationHandleConfiguredSource<T> NextNode { get; set; } AsyncOperationHandleConfiguredSource<T> nextNode;
public ref AsyncOperationHandleConfiguredSource<T> NextNode => ref nextNode;
static AsyncOperationHandleConfiguredSource() static AsyncOperationHandleConfiguredSource()
{ {

View File

@ -135,7 +135,8 @@ namespace Cysharp.Threading.Tasks
sealed class TweenConfiguredSource : IUniTaskSource, ITaskPoolNode<TweenConfiguredSource> sealed class TweenConfiguredSource : IUniTaskSource, ITaskPoolNode<TweenConfiguredSource>
{ {
static TaskPool<TweenConfiguredSource> pool; static TaskPool<TweenConfiguredSource> pool;
public TweenConfiguredSource NextNode { get; set; } TweenConfiguredSource nextNode;
public ref TweenConfiguredSource NextNode => ref nextNode;
static TweenConfiguredSource() static TweenConfiguredSource()
{ {

View File

@ -7,7 +7,8 @@ namespace Cysharp.Threading.Tasks.Internal
{ {
static TaskPool<PooledDelegate<T>> pool; static TaskPool<PooledDelegate<T>> pool;
public PooledDelegate<T> NextNode { get; set; } PooledDelegate<T> nextNode;
public ref PooledDelegate<T> NextNode => ref nextNode;
static PooledDelegate() static PooledDelegate()
{ {

View File

@ -55,7 +55,7 @@ namespace Cysharp.Threading.Tasks
public interface ITaskPoolNode<T> public interface ITaskPoolNode<T>
{ {
T NextNode { get; set; } ref T NextNode { get; }
} }
// mutable struct, don't mark readonly. // mutable struct, don't mark readonly.
@ -77,8 +77,9 @@ namespace Cysharp.Threading.Tasks
var v = root; var v = root;
if (!(v is null)) if (!(v is null))
{ {
root = v.NextNode; ref var nextNode = ref v.NextNode;
v.NextNode = null; root = nextNode;
nextNode = null;
size--; size--;
result = v; result = v;
Volatile.Write(ref gate, 0); Volatile.Write(ref gate, 0);

View File

@ -127,7 +127,8 @@ namespace Cysharp.Threading.Tasks
sealed class YieldPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<YieldPromise> sealed class YieldPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<YieldPromise>
{ {
static TaskPool<YieldPromise> pool; static TaskPool<YieldPromise> pool;
public YieldPromise NextNode { get; set; } YieldPromise nextNode;
public ref YieldPromise NextNode => ref nextNode;
static YieldPromise() static YieldPromise()
{ {
@ -215,7 +216,8 @@ namespace Cysharp.Threading.Tasks
sealed class NextFramePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<NextFramePromise> sealed class NextFramePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<NextFramePromise>
{ {
static TaskPool<NextFramePromise> pool; static TaskPool<NextFramePromise> pool;
public NextFramePromise NextNode { get; set; } NextFramePromise nextNode;
public ref NextFramePromise NextNode => ref nextNode;
static NextFramePromise() static NextFramePromise()
{ {
@ -309,7 +311,8 @@ namespace Cysharp.Threading.Tasks
sealed class DelayFramePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayFramePromise> sealed class DelayFramePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayFramePromise>
{ {
static TaskPool<DelayFramePromise> pool; static TaskPool<DelayFramePromise> pool;
public DelayFramePromise NextNode { get; set; } DelayFramePromise nextNode;
public ref DelayFramePromise NextNode => ref nextNode;
static DelayFramePromise() static DelayFramePromise()
{ {
@ -424,7 +427,8 @@ namespace Cysharp.Threading.Tasks
sealed class DelayPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayPromise> sealed class DelayPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayPromise>
{ {
static TaskPool<DelayPromise> pool; static TaskPool<DelayPromise> pool;
public DelayPromise NextNode { get; set; } DelayPromise nextNode;
public ref DelayPromise NextNode => ref nextNode;
static DelayPromise() static DelayPromise()
{ {
@ -534,7 +538,8 @@ namespace Cysharp.Threading.Tasks
sealed class DelayIgnoreTimeScalePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayIgnoreTimeScalePromise> sealed class DelayIgnoreTimeScalePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayIgnoreTimeScalePromise>
{ {
static TaskPool<DelayIgnoreTimeScalePromise> pool; static TaskPool<DelayIgnoreTimeScalePromise> pool;
public DelayIgnoreTimeScalePromise NextNode { get; set; } DelayIgnoreTimeScalePromise nextNode;
public ref DelayIgnoreTimeScalePromise NextNode => ref nextNode;
static DelayIgnoreTimeScalePromise() static DelayIgnoreTimeScalePromise()
{ {
@ -644,7 +649,8 @@ namespace Cysharp.Threading.Tasks
sealed class DelayRealtimePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayRealtimePromise> sealed class DelayRealtimePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<DelayRealtimePromise>
{ {
static TaskPool<DelayRealtimePromise> pool; static TaskPool<DelayRealtimePromise> pool;
public DelayRealtimePromise NextNode { get; set; } DelayRealtimePromise nextNode;
public ref DelayRealtimePromise NextNode => ref nextNode;
static DelayRealtimePromise() static DelayRealtimePromise()
{ {

View File

@ -224,7 +224,8 @@ namespace Cysharp.Threading.Tasks
sealed class ThreadPoolWorkItem : IThreadPoolWorkItem, ITaskPoolNode<ThreadPoolWorkItem> sealed class ThreadPoolWorkItem : IThreadPoolWorkItem, ITaskPoolNode<ThreadPoolWorkItem>
{ {
static TaskPool<ThreadPoolWorkItem> pool; static TaskPool<ThreadPoolWorkItem> pool;
public ThreadPoolWorkItem NextNode { get; set; } ThreadPoolWorkItem nextNode;
public ref ThreadPoolWorkItem NextNode => ref nextNode;
static ThreadPoolWorkItem() static ThreadPoolWorkItem()
{ {

View File

@ -38,7 +38,8 @@ namespace Cysharp.Threading.Tasks
sealed class WaitUntilPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitUntilPromise> sealed class WaitUntilPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitUntilPromise>
{ {
static TaskPool<WaitUntilPromise> pool; static TaskPool<WaitUntilPromise> pool;
public WaitUntilPromise NextNode { get; set; } WaitUntilPromise nextNode;
public ref WaitUntilPromise NextNode => ref nextNode;
static WaitUntilPromise() static WaitUntilPromise()
{ {
@ -142,7 +143,8 @@ namespace Cysharp.Threading.Tasks
sealed class WaitWhilePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitWhilePromise> sealed class WaitWhilePromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitWhilePromise>
{ {
static TaskPool<WaitWhilePromise> pool; static TaskPool<WaitWhilePromise> pool;
public WaitWhilePromise NextNode { get; set; } WaitWhilePromise nextNode;
public ref WaitWhilePromise NextNode => ref nextNode;
static WaitWhilePromise() static WaitWhilePromise()
{ {
@ -246,7 +248,8 @@ namespace Cysharp.Threading.Tasks
sealed class WaitUntilCanceledPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitUntilCanceledPromise> sealed class WaitUntilCanceledPromise : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<WaitUntilCanceledPromise>
{ {
static TaskPool<WaitUntilCanceledPromise> pool; static TaskPool<WaitUntilCanceledPromise> pool;
public WaitUntilCanceledPromise NextNode { get; set; } WaitUntilCanceledPromise nextNode;
public ref WaitUntilCanceledPromise NextNode => ref nextNode;
static WaitUntilCanceledPromise() static WaitUntilCanceledPromise()
{ {
@ -334,7 +337,8 @@ namespace Cysharp.Threading.Tasks
sealed class WaitUntilValueChangedUnityObjectPromise<T, U> : IUniTaskSource<U>, IPlayerLoopItem, ITaskPoolNode<WaitUntilValueChangedUnityObjectPromise<T, U>> sealed class WaitUntilValueChangedUnityObjectPromise<T, U> : IUniTaskSource<U>, IPlayerLoopItem, ITaskPoolNode<WaitUntilValueChangedUnityObjectPromise<T, U>>
{ {
static TaskPool<WaitUntilValueChangedUnityObjectPromise<T, U>> pool; static TaskPool<WaitUntilValueChangedUnityObjectPromise<T, U>> pool;
public WaitUntilValueChangedUnityObjectPromise<T, U> NextNode { get; set; } WaitUntilValueChangedUnityObjectPromise<T, U> nextNode;
public ref WaitUntilValueChangedUnityObjectPromise<T, U> NextNode => ref nextNode;
static WaitUntilValueChangedUnityObjectPromise() static WaitUntilValueChangedUnityObjectPromise()
{ {
@ -457,7 +461,8 @@ namespace Cysharp.Threading.Tasks
where T : class where T : class
{ {
static TaskPool<WaitUntilValueChangedStandardObjectPromise<T, U>> pool; static TaskPool<WaitUntilValueChangedStandardObjectPromise<T, U>> pool;
public WaitUntilValueChangedStandardObjectPromise<T, U> NextNode { get; set; } WaitUntilValueChangedStandardObjectPromise<T, U> nextNode;
public ref WaitUntilValueChangedStandardObjectPromise<T, U> NextNode => ref nextNode;
static WaitUntilValueChangedStandardObjectPromise() static WaitUntilValueChangedStandardObjectPromise()
{ {

View File

@ -319,7 +319,8 @@ namespace Cysharp.Threading.Tasks
public class AutoResetUniTaskCompletionSource : IUniTaskSource, ITaskPoolNode<AutoResetUniTaskCompletionSource>, IPromise public class AutoResetUniTaskCompletionSource : IUniTaskSource, ITaskPoolNode<AutoResetUniTaskCompletionSource>, IPromise
{ {
static TaskPool<AutoResetUniTaskCompletionSource> pool; static TaskPool<AutoResetUniTaskCompletionSource> pool;
public AutoResetUniTaskCompletionSource NextNode { get; set; } AutoResetUniTaskCompletionSource nextNode;
public ref AutoResetUniTaskCompletionSource NextNode => ref nextNode;
static AutoResetUniTaskCompletionSource() static AutoResetUniTaskCompletionSource()
{ {
@ -441,7 +442,8 @@ namespace Cysharp.Threading.Tasks
public class AutoResetUniTaskCompletionSource<T> : IUniTaskSource<T>, ITaskPoolNode<AutoResetUniTaskCompletionSource<T>>, IPromise<T> public class AutoResetUniTaskCompletionSource<T> : IUniTaskSource<T>, ITaskPoolNode<AutoResetUniTaskCompletionSource<T>>, IPromise<T>
{ {
static TaskPool<AutoResetUniTaskCompletionSource<T>> pool; static TaskPool<AutoResetUniTaskCompletionSource<T>> pool;
public AutoResetUniTaskCompletionSource<T> NextNode { get; set; } AutoResetUniTaskCompletionSource<T> nextNode;
public ref AutoResetUniTaskCompletionSource<T> NextNode => ref nextNode;
static AutoResetUniTaskCompletionSource() static AutoResetUniTaskCompletionSource()
{ {

View File

@ -82,7 +82,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleRequestAllAssetsWithCancellationSource : IUniTaskSource<UnityEngine.Object[]>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestAllAssetsWithCancellationSource> sealed class AssetBundleRequestAllAssetsWithCancellationSource : IUniTaskSource<UnityEngine.Object[]>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestAllAssetsWithCancellationSource>
{ {
static TaskPool<AssetBundleRequestAllAssetsWithCancellationSource> pool; static TaskPool<AssetBundleRequestAllAssetsWithCancellationSource> pool;
public AssetBundleRequestAllAssetsWithCancellationSource NextNode { get; set; } AssetBundleRequestAllAssetsWithCancellationSource nextNode;
public ref AssetBundleRequestAllAssetsWithCancellationSource NextNode => ref nextNode;
static AssetBundleRequestAllAssetsWithCancellationSource() static AssetBundleRequestAllAssetsWithCancellationSource()
{ {
@ -204,7 +205,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleRequestAllAssetsConfiguredSource : IUniTaskSource<UnityEngine.Object[]>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestAllAssetsConfiguredSource> sealed class AssetBundleRequestAllAssetsConfiguredSource : IUniTaskSource<UnityEngine.Object[]>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestAllAssetsConfiguredSource>
{ {
static TaskPool<AssetBundleRequestAllAssetsConfiguredSource> pool; static TaskPool<AssetBundleRequestAllAssetsConfiguredSource> pool;
public AssetBundleRequestAllAssetsConfiguredSource NextNode { get; set; } AssetBundleRequestAllAssetsConfiguredSource nextNode;
public ref AssetBundleRequestAllAssetsConfiguredSource NextNode => ref nextNode;
static AssetBundleRequestAllAssetsConfiguredSource() static AssetBundleRequestAllAssetsConfiguredSource()
{ {

View File

@ -29,7 +29,8 @@ namespace Cysharp.Threading.Tasks
sealed class AsyncGPUReadbackRequestAwaiterConfiguredSource : IUniTaskSource<AsyncGPUReadbackRequest>, IPlayerLoopItem, ITaskPoolNode<AsyncGPUReadbackRequestAwaiterConfiguredSource> sealed class AsyncGPUReadbackRequestAwaiterConfiguredSource : IUniTaskSource<AsyncGPUReadbackRequest>, IPlayerLoopItem, ITaskPoolNode<AsyncGPUReadbackRequestAwaiterConfiguredSource>
{ {
static TaskPool<AsyncGPUReadbackRequestAwaiterConfiguredSource> pool; static TaskPool<AsyncGPUReadbackRequestAwaiterConfiguredSource> pool;
public AsyncGPUReadbackRequestAwaiterConfiguredSource NextNode { get; set; } AsyncGPUReadbackRequestAwaiterConfiguredSource nextNode;
public ref AsyncGPUReadbackRequestAwaiterConfiguredSource NextNode => ref nextNode;
static AsyncGPUReadbackRequestAwaiterConfiguredSource() static AsyncGPUReadbackRequestAwaiterConfiguredSource()
{ {

View File

@ -80,7 +80,8 @@ namespace Cysharp.Threading.Tasks
sealed class AsyncOperationWithCancellationSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationWithCancellationSource> sealed class AsyncOperationWithCancellationSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationWithCancellationSource>
{ {
static TaskPool<AsyncOperationWithCancellationSource> pool; static TaskPool<AsyncOperationWithCancellationSource> pool;
public AsyncOperationWithCancellationSource NextNode { get; set; } AsyncOperationWithCancellationSource nextNode;
public ref AsyncOperationWithCancellationSource NextNode => ref nextNode;
static AsyncOperationWithCancellationSource() static AsyncOperationWithCancellationSource()
{ {
@ -198,7 +199,8 @@ namespace Cysharp.Threading.Tasks
sealed class AsyncOperationConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationConfiguredSource> sealed class AsyncOperationConfiguredSource : IUniTaskSource, IPlayerLoopItem, ITaskPoolNode<AsyncOperationConfiguredSource>
{ {
static TaskPool<AsyncOperationConfiguredSource> pool; static TaskPool<AsyncOperationConfiguredSource> pool;
public AsyncOperationConfiguredSource NextNode { get; set; } AsyncOperationConfiguredSource nextNode;
public ref AsyncOperationConfiguredSource NextNode => ref nextNode;
static AsyncOperationConfiguredSource() static AsyncOperationConfiguredSource()
{ {
@ -374,7 +376,8 @@ namespace Cysharp.Threading.Tasks
sealed class ResourceRequestWithCancellationSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<ResourceRequestWithCancellationSource> sealed class ResourceRequestWithCancellationSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<ResourceRequestWithCancellationSource>
{ {
static TaskPool<ResourceRequestWithCancellationSource> pool; static TaskPool<ResourceRequestWithCancellationSource> pool;
public ResourceRequestWithCancellationSource NextNode { get; set; } ResourceRequestWithCancellationSource nextNode;
public ref ResourceRequestWithCancellationSource NextNode => ref nextNode;
static ResourceRequestWithCancellationSource() static ResourceRequestWithCancellationSource()
{ {
@ -496,7 +499,8 @@ namespace Cysharp.Threading.Tasks
sealed class ResourceRequestConfiguredSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<ResourceRequestConfiguredSource> sealed class ResourceRequestConfiguredSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<ResourceRequestConfiguredSource>
{ {
static TaskPool<ResourceRequestConfiguredSource> pool; static TaskPool<ResourceRequestConfiguredSource> pool;
public ResourceRequestConfiguredSource NextNode { get; set; } ResourceRequestConfiguredSource nextNode;
public ref ResourceRequestConfiguredSource NextNode => ref nextNode;
static ResourceRequestConfiguredSource() static ResourceRequestConfiguredSource()
{ {
@ -677,7 +681,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleRequestWithCancellationSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestWithCancellationSource> sealed class AssetBundleRequestWithCancellationSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestWithCancellationSource>
{ {
static TaskPool<AssetBundleRequestWithCancellationSource> pool; static TaskPool<AssetBundleRequestWithCancellationSource> pool;
public AssetBundleRequestWithCancellationSource NextNode { get; set; } AssetBundleRequestWithCancellationSource nextNode;
public ref AssetBundleRequestWithCancellationSource NextNode => ref nextNode;
static AssetBundleRequestWithCancellationSource() static AssetBundleRequestWithCancellationSource()
{ {
@ -799,7 +804,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleRequestConfiguredSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestConfiguredSource> sealed class AssetBundleRequestConfiguredSource : IUniTaskSource<UnityEngine.Object>, IPlayerLoopItem, ITaskPoolNode<AssetBundleRequestConfiguredSource>
{ {
static TaskPool<AssetBundleRequestConfiguredSource> pool; static TaskPool<AssetBundleRequestConfiguredSource> pool;
public AssetBundleRequestConfiguredSource NextNode { get; set; } AssetBundleRequestConfiguredSource nextNode;
public ref AssetBundleRequestConfiguredSource NextNode => ref nextNode;
static AssetBundleRequestConfiguredSource() static AssetBundleRequestConfiguredSource()
{ {
@ -981,7 +987,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleCreateRequestWithCancellationSource : IUniTaskSource<AssetBundle>, IPlayerLoopItem, ITaskPoolNode<AssetBundleCreateRequestWithCancellationSource> sealed class AssetBundleCreateRequestWithCancellationSource : IUniTaskSource<AssetBundle>, IPlayerLoopItem, ITaskPoolNode<AssetBundleCreateRequestWithCancellationSource>
{ {
static TaskPool<AssetBundleCreateRequestWithCancellationSource> pool; static TaskPool<AssetBundleCreateRequestWithCancellationSource> pool;
public AssetBundleCreateRequestWithCancellationSource NextNode { get; set; } AssetBundleCreateRequestWithCancellationSource nextNode;
public ref AssetBundleCreateRequestWithCancellationSource NextNode => ref nextNode;
static AssetBundleCreateRequestWithCancellationSource() static AssetBundleCreateRequestWithCancellationSource()
{ {
@ -1103,7 +1110,8 @@ namespace Cysharp.Threading.Tasks
sealed class AssetBundleCreateRequestConfiguredSource : IUniTaskSource<AssetBundle>, IPlayerLoopItem, ITaskPoolNode<AssetBundleCreateRequestConfiguredSource> sealed class AssetBundleCreateRequestConfiguredSource : IUniTaskSource<AssetBundle>, IPlayerLoopItem, ITaskPoolNode<AssetBundleCreateRequestConfiguredSource>
{ {
static TaskPool<AssetBundleCreateRequestConfiguredSource> pool; static TaskPool<AssetBundleCreateRequestConfiguredSource> pool;
public AssetBundleCreateRequestConfiguredSource NextNode { get; set; } AssetBundleCreateRequestConfiguredSource nextNode;
public ref AssetBundleCreateRequestConfiguredSource NextNode => ref nextNode;
static AssetBundleCreateRequestConfiguredSource() static AssetBundleCreateRequestConfiguredSource()
{ {
@ -1307,7 +1315,8 @@ namespace Cysharp.Threading.Tasks
sealed class UnityWebRequestAsyncOperationWithCancellationSource : IUniTaskSource<UnityWebRequest>, IPlayerLoopItem, ITaskPoolNode<UnityWebRequestAsyncOperationWithCancellationSource> sealed class UnityWebRequestAsyncOperationWithCancellationSource : IUniTaskSource<UnityWebRequest>, IPlayerLoopItem, ITaskPoolNode<UnityWebRequestAsyncOperationWithCancellationSource>
{ {
static TaskPool<UnityWebRequestAsyncOperationWithCancellationSource> pool; static TaskPool<UnityWebRequestAsyncOperationWithCancellationSource> pool;
public UnityWebRequestAsyncOperationWithCancellationSource NextNode { get; set; } UnityWebRequestAsyncOperationWithCancellationSource nextNode;
public ref UnityWebRequestAsyncOperationWithCancellationSource NextNode => ref nextNode;
static UnityWebRequestAsyncOperationWithCancellationSource() static UnityWebRequestAsyncOperationWithCancellationSource()
{ {
@ -1438,7 +1447,8 @@ namespace Cysharp.Threading.Tasks
sealed class UnityWebRequestAsyncOperationConfiguredSource : IUniTaskSource<UnityWebRequest>, IPlayerLoopItem, ITaskPoolNode<UnityWebRequestAsyncOperationConfiguredSource> sealed class UnityWebRequestAsyncOperationConfiguredSource : IUniTaskSource<UnityWebRequest>, IPlayerLoopItem, ITaskPoolNode<UnityWebRequestAsyncOperationConfiguredSource>
{ {
static TaskPool<UnityWebRequestAsyncOperationConfiguredSource> pool; static TaskPool<UnityWebRequestAsyncOperationConfiguredSource> pool;
public UnityWebRequestAsyncOperationConfiguredSource NextNode { get; set; } UnityWebRequestAsyncOperationConfiguredSource nextNode;
public ref UnityWebRequestAsyncOperationConfiguredSource NextNode => ref nextNode;
static UnityWebRequestAsyncOperationConfiguredSource() static UnityWebRequestAsyncOperationConfiguredSource()
{ {

View File

@ -154,7 +154,8 @@ namespace Cysharp.Threading.Tasks
sealed class <#= t.typeName #>WithCancellationSource : <#= ToIUniTaskSourceReturnType(t.returnType) #>, IPlayerLoopItem, ITaskPoolNode<<#= t.typeName #>WithCancellationSource> sealed class <#= t.typeName #>WithCancellationSource : <#= ToIUniTaskSourceReturnType(t.returnType) #>, IPlayerLoopItem, ITaskPoolNode<<#= t.typeName #>WithCancellationSource>
{ {
static TaskPool<<#= t.typeName #>WithCancellationSource> pool; static TaskPool<<#= t.typeName #>WithCancellationSource> pool;
public <#= t.typeName #>WithCancellationSource NextNode { get; set; } <#= t.typeName #>WithCancellationSource nextNode;
public ref <#= t.typeName #>WithCancellationSource NextNode => ref nextNode;
static <#= t.typeName #>WithCancellationSource() static <#= t.typeName #>WithCancellationSource()
{ {
@ -297,7 +298,8 @@ namespace Cysharp.Threading.Tasks
sealed class <#= t.typeName #>ConfiguredSource : <#= ToIUniTaskSourceReturnType(t.returnType) #>, IPlayerLoopItem, ITaskPoolNode<<#= t.typeName #>ConfiguredSource> sealed class <#= t.typeName #>ConfiguredSource : <#= ToIUniTaskSourceReturnType(t.returnType) #>, IPlayerLoopItem, ITaskPoolNode<<#= t.typeName #>ConfiguredSource>
{ {
static TaskPool<<#= t.typeName #>ConfiguredSource> pool; static TaskPool<<#= t.typeName #>ConfiguredSource> pool;
public <#= t.typeName #>ConfiguredSource NextNode { get; set; } <#= t.typeName #>ConfiguredSource nextNode;
public ref <#= t.typeName #>ConfiguredSource NextNode => ref nextNode;
static <#= t.typeName #>ConfiguredSource() static <#= t.typeName #>ConfiguredSource()
{ {