The exact operation of xQueueReceive

Hi I was just wondering if someone could explain the exact operation of xQueueReceive? What I am seeing is that if I try to do a Queue receive and there is no data there and I specify a block time of say 10 seconds, that the task does not return and continue to run until the 10 second window expires.  This is regardless of whether something is put into the queue after the first check.  Is this the expected beahviour? Thanks

The exact operation of xQueueReceive

No – this is definitely not the expected behaviour.  When data is posted to the queue the task will be unblocked.  When the task actually runs will depend on its priority relative to the other tasks in the system.  Take a look at FreeRTOS/Demo/blocktim.c for an example of this. Regards.