nobody wrote on Thursday, June 23, 2005:
Have the task wait on a queue/semaphore with a timeout? If the event occurs then the queue/semaphore makes the task unblock. If the event does not occur then the timeout (timer) makes the task unblock.
Have the task bock indefinately on a queue. If the event occurs then a message is posted onto the queue telling the task what the event was. If the time out occurs then a message is posted onto the queue to tell the task that there was a time out (just another event type really).
Modify the code to do what you want