| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | using System.Collections.Generic;using System.Runtime.CompilerServices;namespace UnityAsync{	public partial class AsyncManager	{		partial class ContinuationProcessorGroup		{			const int InitialCapacity = 1 << 10;						interface IContinuationProcessor			{				void Process();			}			readonly List<IContinuationProcessor> processors;			public ContinuationProcessorGroup()			{				processors = new List<IContinuationProcessor>(16);			}			[MethodImpl(MethodImplOptions.AggressiveInlining)]			public void Add<T>(in T cont) where T : IAwaitInstructionAwaiter			{				var p = ContinuationProcessor<T>.instance;				if(p == null)				{					p = ContinuationProcessor<T>.instance = new ContinuationProcessor<T>(InitialCapacity);					processors.Add(ContinuationProcessor<T>.instance);				}				p.Add(cont);			}			public void Process()			{				for(int i = 0; i < processors.Count; ++i)					processors[i].Process();			}		}	}}
 |