A method of garbage collection of shared data in a system heap within a data
processing
system, the method comprising the steps of: (a) determining if the contents of
the system heap has reached a predetermined threshold, the system heap storing
shared objects which are shared amongst a plurality of processes running in a data
processing system; (b) in a table identifying each of the plurality of processes
with a status field, setting the status field of a process which has carried out
determining step (a) to a mark initiator value; (c) triggering remaining processes
to mark all objects in the system heap that each process is currently using; (d)
determining that each of the remaining processes has completed the marking, at
step (c); (e) releasing any unmarked objects in the system heap to an object pool.