Hi, in my program, at some poin, I can't give a semaphore (mutex) because it says that the number of messages waiting is lower than the length. Both of those variables have a very weird value. What could make them go so high ? With this message I attached a screen of the condition that fails, and the value of the variables (bottom of the screen).
That looks like some corruption.
Either the value of the variable 'pxQueue' is corrupted.
And if pxQueue is still pointing to the queue object, it might be that the contents of the object has been overwritten.
How did you declare the pointer
pxQueue, as an automatic variable? Does its value change? Did you declare an object just next to it?
and overwrite the adjacent object?
Many possibilities to investigate...