A developer working on a sophisticate task will commonly want to sleep on a combination of timers, queues, and incoming messages. Using an event group is the elegant solution to coordinate these things.
Currently, the xQueueReceive function must be followed up by an uxQueueMessagesWaiting call to determine if a task needs to reactivate the event to indicate incoming messages still in the message queue. This amounts to having to enter a critical section twice when once should have been sufficient. Please add add a third return value to xQueueReceive to indicate "success but not empty".
I meant timers, queues (messages), and raw events.
One big problem with adding a second successful return value is that it is quietly breaking change. Any task that tests the return value of xQueueReceive() with an equal test to ok, will suddenly not work right.
My solution to something like that, is to pull the data out of the Queue with a while Ok loop with a delay value of 0 before returning to the block on the event group.
There is already a workaround, and changing the API would be a big breaking change.