ATOMICALLY MOVING LIST ELEMENTS BETWEEN LISTS USING READ-COPY UPDATE
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method and computer program product for atomically moving a shared list element from a first list location to a second list location includes inserting a placeholder element at the second list location to signify to readers that a move operation is underway, removing the shared list element from the first list location, re-identifying the list element to reflect its move from the first list location to the second list location, inserting it at the second list location and unlinking the placeholder element. A deferred removal of the placeholder element is performed following a period in which readers can no longer maintain references thereto. A method, system and computer program product are additionally provided for performing a lookup of a target list element that is subject to being atomically moved from a first list to a second list.
52 Citations
30 Claims
-
1-5. -5. (canceled)
-
6. :
- A method for performing a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
initiating a list traversal beginning at a first list element; and
upon encountering a list element that is a placeholder for said target list element that was generated as a result of a concurrent move operation involving said target list element, waiting until said placeholder indicates that said move operation has completed, and thereafter returning failure so that said lookup can be retried. - View Dependent Claims (7, 8, 9, 10)
- A method for performing a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
-
11-15. -15. (canceled)
-
16. :
- A data processing system adapted to perform a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
means for initiating a list traversal beginning at a first list element; and
means responsive to encountering a list element that is a placeholder for said target list element that was generated as a result of a concurrent move operation involving said target list element for waiting until said placeholder indicates that said move operation has completed, and thereafter returning failure so that said lookup can be retried. - View Dependent Claims (17, 18, 19, 20)
- A data processing system adapted to perform a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
-
21-25. -25. (canceled)
-
26. :
- A computer program product for performing a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
one or more data storage media;
means recorded on said data storage media for programming a data processing platform to operate as by;
initiating a list traversal beginning at a first list element; and
upon encountering a list element that is a placeholder for said target list element that was generated as a result of a concurrent move operation involving said target list element, waiting until said placeholder indicates that said move operation has completed, and thereafter returning failure so that said lookup can be retried. - View Dependent Claims (27, 28, 29, 30)
- A computer program product for performing a lookup of a target list element that is subject to being atomically moved from a first list to a second list, comprising;
Specification