RTEMS Posix lock failure

John Harwell jharwell at swri.org
Fri Jan 3 22:32:57 UTC 2014


In my code, I have determined that after a small number of pthread mutex 
lock/unlocks, suddenly
RTEMS enters Internal_error_Occurred() from _CORE_mutex_Seize(). In 
order for this to happen, I have
determined that the variable _Thread_Dispatch_disable_level must be > 0. 
As I understand it, RTEMS should
take care of that when entering/leaving ISRs, but somehow it is not 
being properly decremented ( I have observed
it to go to 2).

If in gdb I clear _Thread_Dispatch_disable_level upon the call to 
_CORE_mutex_Seize() right before before my code
had been locking up, it continues on and runs smoothly, and all 
subsequent lock/unlock calls work fine, implying
that it is some sort of one-time issue.

Any ideas on why this is happening?

I am using RTEMS 4.10.


John Harwell
High Reliability Software Section
Communications and Embedded Systems Department

john.harwell at swri.org
Office: 210-522-5965
Southwest Research Institute (SwRI)
6220 Culebra Road, San Antonio, TX 78238-5166

More information about the users mailing list