It cannot do priority inheritance to prevent unbounded priority inversions among tasks. If a task tests a semaphore that it already owns, it will be permanently blocked, as will all other tasks ...