Patent ID: 7103887

Claim:
A computer system configured to: A) provide a plurality of task queues, each having a top end and a bottom end and in which can be stored and from which can be retrieved task identifiers, which identify tasks to be performed; and B) for each provided task queue, employ a separate execution thread associated therewith to: i) select repeatedly a current access mode from one of a LIFO access mode and a FIFO access mode in accordance with a mode-selection criterion; and ii) perform dynamically identified tasks, wherein each said dynamically identified task is a garbage-collection task for performing, for a given object associated with that task, processing that includes identifying in the given object references to other objects, and thereby identifying the tasks of performing similar processing for is those other objects, by repeatedly: a) popping a task identifier from one of the top end or the bottom end of that task queue in order to access that task queue in a LIFO access mode or a FIFO access mode in accordance with the current access mode; b) so performing the task thereby identified as, in at least some instances, to find one or more further tasks to be performed; and c) pushing onto that task queue task identifiers that identify any tasks thus found.