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