Patent ID: 7133977

Claim:
A method of preventing an object from being destroyed or otherwise rendered inaccessible in a multiprocessor environment with a shared memory while at least one reference on the object exists, the method comprising: maintaining a local reference count for each of the plurality of processors; managing requests for new references on the object and releases of existing references on the object based on the local reference counts and a global reference counts, wherein managing requests for new references comprises: if a rundown wait is in progress, refusing to grant a new reference; and if a rundown wait is not in progress, and a processor executes a request for at least one new reference, updating the per-processor count associated with the processor by atomically replacing the per-processor count with a new per-processor count reflecting an addition of the at least one new reference; and executing a rundown wait routine that establishes the global reference count when the object is to be destroyed or otherwise rendered inaccessible.