There is no mechanism by which processes synchronizing with other processes will automatically inherit the priority of waiting processes. An application can bound its priority inversion by using priority ceiling emulation.
Under this model, the application associates a priority with each synchronization object, which is typically the highest priority of any process that can block on that object.
Each process then uses the following sequence when manipulating the shared resources:
Raise process priority to maximum of current level and synchronization object level
Acquire synchronization object
Execute the critical section
Release synchronized object
Return to previous process priority level