Patent ID: 6629153
Filing Date: 2003-09-30
Classification: G06F

Abstract:
A method for providing peer ownership of shared objects by multiple processes, comprising:creating a first shell object associated with a first process, wherein the first shell object includes a reference to a first shared object state stored in shared memory; creating a second shell object associated with the first process to access a second shared object state when the first shell object desires to access the second shared object state, wherein the second shell object includes a reference to the second object state stored in the shared memory; creating a third shell object associated with a second process, wherein the third shell object includes a reference to the first shared object state stored in the shared memory so that the first and second processes are peer owners of the first shared object state; creating a fourth shell object associated with the second process to access the second shared object state when the third shell object desires to access the second shared object state, wherein the fourth shell object includes a reference to the second shared object state stored in the shared memory so that the first and second processes are peer owners of the second shared object state; determining a first offset value corresponding to a global identifier of the first object state, the first offset value associated with a first data block in the shared memory, the first data block including the first shared object state, wherein the first shell object includes a pointer to the first data block in a process space of the first process; determining if the first offset value is present in a second table, the second table comprising a plurality of shell objects for the first process, the plurality of shell objects referenced by a plurality of offset values; if the first offset value is present in the second table, creating the first shell object further comprises: retrieving from the second table the first shell object corresponding to the first offset value; and if the first offset value is not present in the second table, creating the first shell object further comprises: creating the first shell object in the process space; setting the pointer in the first shell object to point to the first data block; and adding the first shell object and the first offset value to the second table.