Getting a mutex is very slow

brianreinhold wrote on Saturday, June 24, 2017:

It takes one second for the xSemaphoreTake() method to get an available mutex! It is so slow that is renders it useless. All I want is a mutex on a simple data queue. Why is it soooo slow?


richarddamon wrote on Saturday, June 24, 2017:

It doesn’t take that sort of time for me. Has someone given the Semaphore so it can be taken?

rtel wrote on Saturday, June 24, 2017:

Obviously one second is orders of magnitude longer than it actually
takes to obtain a semaphore, so I suspect your system is not doing what
you think it is doing. Have you tried using FreeRTOS+Trace to visualise
how your application executes?

Do you have two or more tasks at the same priority attempting to take
the same mutex in tight loops? If so then the behaviour is described in
the book.