Hello.
I have a thread which must be waked-up from multiple sources - 3 different message box for example. How I can organize this in CMSIS-RTOS? Currently in revision 4.00 of CMSIS, there is a osWait() function. But in RTX 4.74 (which comes with latest CMSIS), this function is not implemented.
So what I can do like a workaround of this problem? Wake-up regularly via timer and check all message boxes? Working but not efficient.Currently the only multi-object wake-up source implemented in CMSIS-RTOS seems to be the signals. But it's not really cool to use message box and signals in parallel for waking up. Did I'm missing something?
It is impossible to wait for more than one mailbox at the same time, however you may use signals to wait for more than one signal at the same time. Maybe you can overcome your problem in this way.
For more information see: CMSIS-RTOS RTX: Signal Management
Hi Reinhard,
I have been looking at the link which you suggested. I don't think that there is a way for a thread to wait for a multiple signals at the same time, and there is no way to distinguish which signal has just been received if the code waits like this:
osSignalWait(0,osWaitForever);//wait for ANY signal to this thread
Perhaps you can help by showing us some code on how to do this?
Thank you very much
Wan