Patent ID: 7216136

Claim:
A method for concurrent collection of cyclic garbage in a reference counting system, the method comprising the steps of: identifying candidate objects for garbage collection, wherein each candidate object is a root node of a cycle; storing candidate objects in a cycle buffer; computing external reference counts for each object in die cycle buffer; determining a previous reference count for each object in the cycle buffer; waiting until an epoch boundary; ensuring, for each cycle in the cycle buffer, that no new reference was added to an object in the cycle of objects in the cycle buffer and removing any cycles from the cycle buffer when a new reference has been added to an object in the cycle; ensuring, for each cycle in the cycle buffer, that all references to objects in the cycle are from objects within the cycle and removing any cycles from the cycle buffer when a reference to an object in the cycle is not from an object within the cycle; and collecting all objects in the cycle buffer.