Patent ID: 6862734

Claim:
A method for controlling the synchrony of interprocess communication (IPC) which uses: a. the original sender of the communication, called the source; b. the ultimate receiver of the communication, called the destination; c. a kernel process that is capable of delivering communications and unblocking the source of the communication; d. one or more processes, called monitors, to which the kernel process may choose to deliver a communication to, rather than the destination, and which have the ability to request control of when a source is unblocked, called the controlling monitor of the source, wherein the method for controlling the synchrony of interprocess communication comprise the following steps: when the communication is sent by the source, the source is blocked by the kernel process; the kernel either delivers the communication to the destination or to a monitor; the monitor may request that the kernel process make it the controlling monitor of the source; the monitor forwards the communication to the destination specifying the source of the communication, and the monitor is blocked by the kernel process until the communication is delivered either to the destination or another monitor; when the communication is delivered to the destination, the kernel process either: (1) signals the controlling monitor of the specified source, if any, or (2) unblocks the specified source; the controlling monitor of the source can request that the kernel process unblock the source at any time after being signalled that the communication was delivered to the destination; whereby the interprocess communication appears to the destination and to the source to have the same semantics regardless of whether the communication is sent directly from the source to the destination without being examined by the monitor, or the communication is sent from the source to the destination via the monitor and the monitor examines the communication.