protected void balanceQueues(object sender, JobEmptyQueueArgs e) { if (totalCount() < refillThreshold) { e.Quit = true; return; } var newQueue = new MaybeQueue <Action <int> >(); for (var i = 0; i < processorCount; i++) { while (queue.Dequeue(i).If(out var action)) { newQueue.Enqueue(action); } } queue.ResetCurrentAffinity(); while (newQueue.Dequeue().If(out var item)) { queue.Enqueue(item); } e.Quit = false; }
public void Add(Value value) { var iterator = new NSIterator(value.PossibleGenerator().FlatMap(g => g, () => new NSOneItemGenerator(value))); iterators.Enqueue(iterator); }
public void Add(Value value) { var iterator = new NSIterator(value.PossibleGenerator().DefaultTo(() => new NSOneItemGenerator(value))); iterators.Enqueue(iterator); }