Solutions to a value recycling problem that we define herein 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 of the techniques
described herein allow non-blocking, shared data structures to be
implemented using standard dynamic allocation mechanisms (such as malloc
and free). A variety of solutions to the proposed value recycling problem
may be implemented. A class of general solutions to value recycling is
described in the context of an illustration we call the Repeat Offender
Problem (ROP), including illustrative Application Program Interfaces
(APIs) defined in terms of the ROP terminology. Furthermore, specific
solutions, implementations and algorithm, including a Pass-The-Buck (PTB)
implementation are also described. Solutions to the value recycling
problem can be applied in a variety of ways to implement dynamic-sized
data structures.