Patent ID: 8806168

Claim:
A computer readable storage medium, which does not include transitory propagating signals, storing computer-executable instructions for controlling a computing device to perform a method comprising: producing values with a producer thread; providing a queue data structure including a first array of storage locations for storing the values, the first array having a first tail pointer and a first linking pointer; if a number of values stored in the first array is less than a capacity of the first array, performing an enqueue operation to write a new value at a storage location pointed to by the first tail pointer and advance the first tail pointer; and if the number of values stored in the first array is equal to the capacity of the first array, allocating a second array of storage locations in the queue, the second array having a second tail pointer; linking the first array to the second array with the first linking pointer; and performing an enqueue operation to write the new value at a storage location pointed to by the second tail pointer and advance the second tail pointer.