A method for collecting garbage in a computing environment, the method
including tracing root objects to their reachable objects in a population
of objects, marking the traced objects, unmarking a marked card including
any of the objects, tracing any marked object on the unmarked card to an
unmarked referent object of the marked object, marking the unmarked
referent object, and tracing the marked referent object to its reachable
objects, concurrently with the operation of a mutator upon the population
of objects within the computing environment, and, while no mutator
operates upon the population of objects within the computing environment,
marking the traced objects, tracing unmarked root object referents to
their reachable objects, marking any of the objects, and designating any
unmarked object in the population of objects as available for
reallocation.