public static void ExecuteWithPool()
        {
            Promise.Config.ObjectPooling = Promise.PoolType.All;
            var task = Execute();

            ProtoPromiseHelper.ResolveDeferreds();
            task.Wait();
        }
        private static void Execute()
        {
            Promise <object> .Deferred deferred = Promise.NewDeferred <object>();
            var promise = deferred.Promise;

            for (int i = 0; i < N; ++i)
            {
                promise = promise
                          .ContinueWith(i, (index, _) => ProtoPromiseHelper.protoVoids[index].Promise)
                          .ContinueWith(i, (index, _) => ProtoPromiseHelper.protoVectors[index].Promise)
                          .ContinueWith(i, (index, _) => ProtoPromiseHelper.protoObjects[index].Promise);
            }

            deferred.Resolve(Instances.obj);
            Promise.Manager.HandleCompletesAndProgress();
            ProtoPromiseHelper.ResolveDeferreds();
        }
 public static void Cleanup()
 {
     ProtoPromiseHelper.ClearDeferreds();
 }
 public static void Setup(int N)
 {
     ContinueWithPending.N = N;
     ProtoPromiseHelper.SetDeferreds(N);
 }
 public static void Cleanup()
 {
     ProtoPromiseHelper.ClearProtoPromises();
 }
 public static void Setup(int N)
 {
     AwaitResolved.N = N;
     ProtoPromiseHelper.SetProtoPromises();
 }
 public static void Setup(int N)
 {
     AwaitPending.N = N;
     ProtoPromiseHelper.SetDeferreds(N);
 }
 public static void Setup(int N)
 {
     ContinueWithResolved.N = N;
     ProtoPromiseHelper.SetProtoPromises();
 }