semaphore initial conditions
Posted by Jack Peacock
on June 27, 2008
When I create a mutex semaphore, is the initial condition such that a "Take" will block until a "Give" is issued, or is it necessary to issue a starting "Take" to establish the initial state?
In other words, if I issue a "Create" then a "Take" before any other reference to the semaphore, will the task block? It's not clear in the documentation about initial states, though the example implies the task will block.
I assumed the underlying queue is empty so a take will stall until a give writes to it?
RE: semaphore initial conditions
Posted by woops_
on June 28, 2008
Look at the #define for vSemaphoreCreateBinary in semphr.h. After it is created it is then given so a take will pass without blocking.
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.