Patent ID: 6829769
Filing Date: 2004-12-07
Classification: G06F

Abstract:
In a computerized system that includes multiple processes performing a variety of operations, wherein at least two processes communicate with each other in accomplishing a particular objective, and wherein communicating between the at least two processes may cause context switches, data marshaling, kernel transitions, and blocking, that reduce the operating efficiency of the computerized system, a high-performance method of interprocess communication, the method comprising the acts of:creating one or more shared memory heaps that may be accessed by an enqueuing process and a dequeuing process; creating one or more bi-directional shared memory queues that may be accessed by the enqueuing process and the dequeuing process; allocating one or more memory regions from the one or more shared memory heaps, wherein the allocating produces a process agnostic memory handle for each of the allocated memory regions; the enqueuing process placing an instruction in one or more allocated memory regions; the enqueuing process adding one or more process agnostic memory handles to the one or more bi-directional shared memory queues; and the enqueuing process expecting to receive a response back from the dequeuing process; the enqueuing process adding at least one of the one or more process agnostic memory handles to a registration list so the at least one process agnostic memory handle can be identified if no response is received back from the dequeuing process; and the dequeuing process removing at least one of the one or more process agnostic memory handles from the one or more bi-directional shared memory queues.