vTaskDelay(0) vs taskYIELD()

sverdlovsk wrote on Monday, March 07, 2011:

How does vTaskDelay(0) works? Is it equal to taskYIELD()? And if isn’t what is the difference?

rtel wrote on Tuesday, March 08, 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.