You only need to implement priority donation when a thread is waiting
for a lock held by a lower-priority thread. You do not need to
-implement this fix for semaphores, condition variables, or joins.
-However, you do need to implement priority scheduling in all cases.
+implement this fix for semaphores, condition variables, or joins,
+although you are welcome to do so. However, you do need to implement
+priority scheduling in all cases.
You may assume a static priority for priority donation, that is, it is
not necessary to ``re-donate'' a thread's priority if it changes