Semaphore/Mutex Questions

amraldo wrote on Sunday, June 20, 2010:

What is the initial value of a binary semaphore after creation?
How can I delete a semaphore or a mutex after use?
What if by accident I used a deleted semaphore or a mutex?

davedoors wrote on Monday, June 21, 2010:

The code for vSemaphoreCreateBinary() is in semphr.h. It first creates the semaphore, then gives it. Mutexes are also created in a similar way. I think you can use vQueueDelete() to delete a semaphore (they use the same structs) but don’t do that if there are any tasks blocked on the semaphore at the time.

amraldo wrote on Monday, June 21, 2010:

Actually deleting a queue while tasks blocked is dangerous as well. What about deleting a mutex?
vQueueDelete i think can’t be used cause the allocated data is not the same as for a semaphore or a queue.
a free function for the structure of the queue plus unregister function would be enough.