1. A computer system comprising: (a) means for running a plurality of processes; (b) a message queue, having a head and a tail; (c) a process queue, having a head and a tail; and (d) a message handler comprising: (i) means responsive to a request from a source process having a message to send, for adding said message to the tail of the message queue along with a destination process identity for said message; (ii) means responsive to a request from a destination process, indicating that said destination process is ready to receive a message, for adding an entry identifying said destination process to the tail of said process queue and then suspending said destination process; (iii) means for performing a scan of the process queue, starting from the head of the process queue and, for each process in the process queue, performing a scan of the message queue, starting from the head of the message queue, until a message/process pair is found comprising a particular process and a particular message that is destined for said particular process; and (iv) means for activating said particular process and for passing said particular message to said particular process.