Pulses

All the messaging we've talked about so far blocks the client. It's nap time for the client as soon as it calls MsgSend(). The client sleeps until the server gets around to replying.

However, there are instances where the sender of a message can't afford to block. We'll look at some examples in the Interrupts and Clocks, Timers, and Getting a Kick Every So Often chapters, but for now we should understand the concept. The mechanism that implements a non-blocking send is called a pulse. A pulse is a tiny message that:

  • can carry 40 bits of payload (an 8-bit code and 32 bits of data)
  • is non-blocking for the sender
  • can be received just like any other message
  • is queued if the receiver isn't blocked waiting for it
Page updated: