Value recycling facility for multithreaded computations
AssigneeOracle International Corporation
InventorsMark S. Moir, Victor Luchangco, Maurice Herlihy
Life of this patent
Estimating the term…
Loading patent…
AssigneeOracle International Corporation
InventorsMark S. Moir, Victor Luchangco, Maurice Herlihy
Estimating the term…
Solutions to a value recycling problem facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). Some exploitations allow non-blocking, indeed even lock-free or wait-free, implementations of dynamic storage allocation for shared data structures. In some exploitations, our techniques provide a way to manage dynamically allocated memory in a non-blocking manner without depending on garbage collection. While exploitations of solutions to the value recycling problem that we propose include management of dynamic storage allocation wherein values managed and recycled tend to include values that encode pointers, they are not limited thereto. Indeed, the techniques are more generally applicable to management of values in a multithreaded computation. For example, value recycling techniques may be exploited, in some cases, apart from dynamic storage allocation, to allow a multithreaded computation to avoid the classic ABA hazard.
A non-transitory computer readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement a shared, dynamic-sized, non-blocking data structure,
A method of managing dynamically allocated memory for a shared, dynamic-sized, lock-free data structure, the method comprising:
A non-transitory computer readable storage medium, storing program instructions that when executed on a computer cause the computer to implement a multithreaded computation,
Dependencies are inferred from the claim text.