vTaskDelay(0) vs taskYIELD()

Posted by Sverdlovsk on March 7, 2011
How does vTaskDelay(0) works? Is it equal to taskYIELD()? And if isn't what is the difference?

RE: vTaskDelay(0) vs taskYIELD()

Posted by Richard on March 8, 2011
taskYIELD() just performs a yield in whatever way the port being used does not.

vTaskDelay() is a longer function that calculates a wake time, and blocks the task. If vTaskDelay( 0 ) is called, then the wake time will be immediately, so the task will not block, but a yield will still be performed. Therefore calling vTaskDelay( 0 ) will have exactly the same end result as calling taskYIELD(), but is much less efficient in lines of code being executed.

Regards.