Priority inheritance

After executing its critical section and releasing its locks, the process returns to its original priority level.

If L acquires this shared resource (entering a critical section), and H subsequently requires it, H will block until L releases it (leaving its critical section).

When L exits its critical section, it regains its original (low) priority and awakens H (which was blocked by L).

H, having high priority, preempts L and runs to completion.

This enables M and L to resume in succession and run to completion without priority inversion.