protected TaskCollection(string name, int initialSize) { _name = name; _listOfStacks = new FasterList <StructFriendlyStack>((uint)initialSize); var buffer = _listOfStacks.ToArrayFast(); for (int i = 0; i < initialSize; i++) { buffer[i] = new StructFriendlyStack(1); } }
protected TaskCollection(int initialSize) { _currentTask = new CollectionTask(this); _listOfStacks = new FasterList <StructFriendlyStack>(initialSize); var buffer = _listOfStacks.ToArrayFast(); for (int i = 0; i < initialSize; i++) { buffer[i] = new StructFriendlyStack(1); } }
public void Add(T enumerator) { var buffer = _listOfStacks.ToArrayFast(); var count = _listOfStacks.Count; if (count < buffer.Length && buffer[count].isValid()) { buffer[count].Clear(); buffer[count].Push(enumerator); _listOfStacks.ReuseOneSlot(); } else { var stack = new StructFriendlyStack(_INITIAL_STACK_SIZE); _listOfStacks.AddRef(ref stack); buffer = _listOfStacks.ToArrayFast(); buffer[_listOfStacks.Count - 1].Push(enumerator); } }
public void Add(T enumerator) { DBC.Tasks.Check.Require(isRunning == false, "can't modify a task collection while its running"); var buffer = _listOfStacks.ToArrayFast(); var count = _listOfStacks.Count; if (count < buffer.Length && buffer[count].isValid()) { buffer[count].Clear(); buffer[count].Push(enumerator); _listOfStacks.ReuseOneSlot(); } else { var stack = new StructFriendlyStack(_INITIAL_STACK_SIZE); _listOfStacks.Add(stack); buffer = _listOfStacks.ToArrayFast(); buffer[_listOfStacks.Count - 1].Push(enumerator); } }