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.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.