Event_Handle readerEvent; Mailbox_Handle mailbox; uint events; uint *pMsg; readerEvent = Event_create(NULL, NULL); Mailbox_Params mboxParams; Mailbox_Params_init(&mboxParams); mboxParams.readerEvent = readerEvent; //implicit event mboxParams.readerEventId = MAILBOX_EVENT; mailbox = Mailbox_create(sizeof(uint*), 100, &mboxParams, NULL); //Reader task events = Event_pend(readerEvent, Event_Id_NONE, //and MAILBOX_EVENT | OTHER_EVENT, //or BIOS_WAIT_FOREVER); //block if (events & MAILBOX_EVENT) { Mailbox_pend(mailbox, &pMsg, BIOS_NO_WAIT); //NO_WAIT: already waited for event ... } if (events & OTHER_EVENT) // ** is this acceptable? ** { ... }