The exact operation of xQueueReceive

maczor wrote on Thursday, September 06, 2007:


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?


rtel wrote on Thursday, September 06, 2007:

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.