Patent ID: 9418175
Filing Date: 2016-08-16
CPC Classification: G06F

Claim Text:
1. A computer readable storage device storing computer-executable instructions that, when executed in a computer system, perform a method comprising: acquiring a global lock, with a first thread, on a concurrent bag configured as an enumerable data structure that forms a concurrent collection of data elements that is accessible by a plurality of threads, the concurrent bag configured to minimize using synchronization in accessing the concurrent collection of data elements from the plurality threads, the concurrent bag including a set of local lists configured as a first linked list and a concurrent dictionary that identifies a location of each local list, and each of the set of local lists including a respective second linked list of the data elements, the global lock preventing the plurality of threads other than the first thread from adding or deleting the local lists from the first linked list and preventing any data elements from being added to, removed from, or stolen from any of the local lists of the first linked list until the first thread releases the global lock; preventing the plurality of threads from accessing the set of local lists without synchronization; and subsequent to any unsynchronized operations on the set of local lists completing, performing an enumeration of each of the respective second linked lists of the data elements of the local lists using the concurrent dictionary.