private async Task <INonReentrantTaskGrain[]> InitTaskGrains_NonReentrant(int offset, int num) { INonReentrantTaskGrain[] fanOutGrains = new INonReentrantTaskGrain[num]; logger.Info("Creating {0} fan-out {1} worker grains", num, "non-reentrant"); List <Task> promises = new List <Task>(); for (int i = 0; i < num; i++) { int idx = offset + i; INonReentrantTaskGrain grain = GrainFactory.GetGrain <INonReentrantTaskGrain>(idx); fanOutGrains[i] = grain; int next = offset + ((i + 1) % num); Task promise = grain.SetDestination(next); promises.Add(promise); } await Task.WhenAll(promises); return(fanOutGrains); }
private async Task<INonReentrantTaskGrain[]> InitTaskGrains_NonReentrant(int offset, int num) { INonReentrantTaskGrain[] fanOutGrains = new INonReentrantTaskGrain[num]; logger.Info("Creating {0} fan-out {1} worker grains", num, "non-reentrant"); List<Task> promises = new List<Task>(); for (int i = 0; i < num; i++) { int idx = offset + i; INonReentrantTaskGrain grain = GrainFactory.GetGrain<INonReentrantTaskGrain>(idx); fanOutGrains[i] = grain; int next = offset + ((i + 1) % num); Task promise = grain.SetDestination(next); promises.Add(promise); } await Task.WhenAll(promises); return fanOutGrains; }