A method for avoiding the problem of priority inversion
in a priority scheduling operating system
Priority inheritance is activated by the OS when a high priority thread blocks on a shared resource being used by a lower priority thread. The lower priority thread has its priority temporarily raised by the OS until it relinquishes control of the shared resource.
This prevents priority inversion because the lower priority thread is allowed to process the shared resource quickly.
Priority inheritance is a property of the shared resource, so it can be used on one resource, but not on others in the same system.
The Pathfinder reset bug was solved by creating the shared resource of interest (a semaphore) with priority inheritance (a one-bit fix.)