Patent ID: 7979397

Claim:
A method for keeping track, in an electronic data processing system, of when references made to an element that is stored in memory have all been removed, the method being designed to deal with failures in a manner that does not falsely conclude there are no references, the method comprising: constructing a reference-record, within the memory of the electronic data processing system, that records the addition and removal of references to the element; computing a first hash value that uniquely identifies the source of a first reference to the element; recording the addition of the first reference to the element in the reference-record by using the first hash value as an argument to a record-addition operation that combines at least a portion of the argument with at least a portion of the reference-record; computing a second hash value that uniquely identifies the source of a second reference to the element that is distinct from the first reference to the element; recording the addition of the second reference to the element by using the second hash value as the argument to the record-addition operation; recording the removal of the first reference to the element by using the first hash value in a record-removal operation that acts on the reference-record; recording the removal of the second reference to the element by using the second hash value in the record-removal operation; and determining from the reference-record that each reference-addition operation for the element has been matched by a corresponding reference-removal operation that used the same hash value as the reference-addition, and that the number of reference removals for the element equals the number of reference additions; wherein the first hash value is different than the second hash value; wherein the reference-record records a plurality of references to the element; wherein the reference record includes a hash of a plurality of hash values that identify the sources of the plurality of references, and does not include the plurality of hash values; wherein a reference to the element comprises information that allows the element to be located within the electronic data processing system; and wherein the source of a reference to the element comprises an identifiable entity possessing a reference to the element.