Coordinating reference counting between entities executing within separate address spaces
First Claim
1. An inter-process communication system comprising:
- a trusted entity that maintains a global export count representing a quantity of references to a resource exported by a sharing process, a global reference count representing a quantity of outstanding references to the resource in the inter-process communication system and a count representing a quantity of exports of the resource that must be received before a revoke operation can be initiated.
2 Assignments
0 Petitions
Accused Products
Abstract
Reference counting is shared between an in-process service runtime and a machine-wide service. The machine-wide service maintains a count for the total number of references to an object or resource (the global reference count), a count for the number of exports of a object (the global export count) and a count of the number of exports that must be received by the machine-wide service before a revoke can occur (the exports before revoke count). When a process exports an object or resource, the machine-wide service increments the global export count for the object or resource and increments the global reference count for the object or resource. The machine-wide service increments the global reference count for a passed reference but does not increment the global reference count. The machine-wide service decrements the global reference count in response to receiving an unreferenced message. When the global reference count for a resource or object drops to zero, the machine-wide service deletes the table entry for the object or resource and sends an unref message including the value of the global export count to the sharing process. If the local export count is greater than the global export count of the unref, there are committed exports which have not yet been unreferenced. If both counts are the same, the committed exports have been accounted for and a revoke operation can be issued.
-
Citations
17 Claims
-
1. An inter-process communication system comprising:
a trusted entity that maintains a global export count representing a quantity of references to a resource exported by a sharing process, a global reference count representing a quantity of outstanding references to the resource in the inter-process communication system and a count representing a quantity of exports of the resource that must be received before a revoke operation can be initiated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A method for coordinating reference counting comprising:
-
receiving a message from a process that has received a reference to an object; and
in response to determining that the message is a message indicating that the process is finished with the object reference, deleting an entry for the object in a table for the process and decrementing a global reference count, the global reference count comprising a total of references to the object. - View Dependent Claims (10, 11, 12)
-
-
13. A computer-readable medium comprising computer-executable instructions for coordinating reference counting between a machine-wide reference counting mechanism and a process within a inter-process communication system, comprising instructions for:
receiving a message from a sharing process in the inter-process communication system, the sharing process comprising a process that passes a reference to a resource owned by the process to a receiving process, the message comprising a notification that a resource is to be exported from the sharing process to the receiving process, and in response incrementing a global reference count for the resource in a table maintained by the machine-wide reference counting mechanism for the sharing process and incrementing a global export count for the resource in the table, the global export count representing a number of times the sharing process exported the resource. - View Dependent Claims (14, 15, 16, 17)
Specification