Accessing a collection of data items in a multithreaded environment
First Claim
1. A method in a computer system for accessing a collection of data items, the method comprising:
- when adding a data item to the collection, fetching and adding to a write counter, the fetched write counter pointing to a bucket within a bucket array;
reading from the bucket pointed to by the fetched write pointer using a synchronization access mode of sync;
storing the data item in association with the bucket pointed to by the fetched write pointer;
writing to the bucket pointed to by the fetched write pointer using a synchronization access mode of sync; and
fetching and adding to a lower bound to indicate the number of data items added to the collection.
0 Assignments
0 Petitions
Accused Products
Abstract
Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evalution of values, parallel access of multiple threads to a list synchronized and unsynchronized access to a data buffer, use of fowarding to avoid checking for an end of a buffer, use of sentinel work to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.
120 Citations
59 Claims
-
1. A method in a computer system for accessing a collection of data items, the method comprising:
when adding a data item to the collection, fetching and adding to a write counter, the fetched write counter pointing to a bucket within a bucket array;
reading from the bucket pointed to by the fetched write pointer using a synchronization access mode of sync;
storing the data item in association with the bucket pointed to by the fetched write pointer;
writing to the bucket pointed to by the fetched write pointer using a synchronization access mode of sync; and
fetching and adding to a lower bound to indicate the number of data items added to the collection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
18. A method in a computer system for accessing a collection of data items, the method comprising:
when removing a data item from the collection, fetching and adding to a read counter, the fetched read counter pointing to a bucket within the bucket array;
reading from the bucket pointed to by the fetched read pointer using a synchronization access mode of sync;
removing the data item from association with the bucket pointed to by the fetched read pointer; and
writing to the bucket pointed to by the fetched write pointer using a synchronization access mode of sync. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
33. A method in a computer system for accessing a collection of data items, the method comprising:
-
defining a pointer to indicate a location for a data item;
defining a lower bound to indicate a number of items in the collection; and
determining based on the lower bound whether the collection has a data item; and
when it is determined that the collection has a data item, adjusting the lower bound to indicate that the collection has one less data item; and
accessing the data item at the location defined by the pointer using an access mode of sync. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54)
-
-
49. A computer system for accessing data, comprising:
-
a collection of buckets;
a read counter and a write counter that point to buckets within the collection;
a data structure for each bucket with locations for holding data at each of the buckets; and
a lower bound indicating whether a data item is currently stored in the data structure.
-
-
55. A computer system for accessing a collection of data items, comprising:
-
fetching a lower bound by a reader of a data item, the lower bound indicating a number of data items; and
when the fetched lower bound is greater than or equal to one, refetching and decrementing the lower bound;
when the refetched lower bound is less than one, incrementing the lower bound; and
when the refetched lower bound is not less than one, selecting one of a number of buckets, each bucket for referencing some of the data items. - View Dependent Claims (56, 57, 58, 59)
-
Specification