Add some clarifications to address question from "Kevin Hart"
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 20 Dec 2005 04:17:18 +0000 (04:17 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 20 Dec 2005 04:17:18 +0000 (04:17 +0000)
<kevin.hart@hp.com>.

doc/threads.texi

index f538d8382b2f1554f4457e0241325f3e95ecae62..2f42e3dc5979b8f8ab33fd79db7af020a285c932 100644 (file)
@@ -462,8 +462,8 @@ holds, then both @var{M} and @var{L} should be boosted to @var{H}'s
 priority.
 
 You must implement priority donation for locks.  You need not
 priority.
 
 You must implement priority donation for locks.  You need not
-implement priority donation for semaphores or condition variables,
-but you are welcome to do so.  You do need to implement
+implement priority donation for semaphores or condition variables
+(but you are welcome to do so).  You do need to implement
 priority scheduling in all cases.
 
 Finally, implement the following functions that allow a thread to
 priority scheduling in all cases.
 
 Finally, implement the following functions that allow a thread to
@@ -480,6 +480,9 @@ Returns the current thread's priority.  In the presence of priority
 donation, returns the higher (donated) priority.
 @end deftypefun
 
 donation, returns the higher (donated) priority.
 @end deftypefun
 
+You need not provide any interface to allow a thread to directly modify
+other threads' priorities.
+
 The priority scheduler is not used in any later project.
 
 @node Advanced Scheduler
 The priority scheduler is not used in any later project.
 
 @node Advanced Scheduler
@@ -626,7 +629,7 @@ list.
 Yes.  As long as there is a single highest-priority thread, it continues
 running until it blocks or finishes, even if it calls
 @func{thread_yield}.
 Yes.  As long as there is a single highest-priority thread, it continues
 running until it blocks or finishes, even if it calls
 @func{thread_yield}.
-If there are multiple threads have the same highest priority,
+If multiple threads have the same highest priority,
 @func{thread_yield} should switch among them in ``round robin'' order.
 
 @item What happens to the priority of a donating thread?
 @func{thread_yield} should switch among them in ``round robin'' order.
 
 @item What happens to the priority of a donating thread?
@@ -652,6 +655,12 @@ processor.  It is not acceptable to wait for the next timer interrupt.
 The highest priority thread should run as soon as it is runnable,
 preempting whatever thread is currently running.
 
 The highest priority thread should run as soon as it is runnable,
 preempting whatever thread is currently running.
 
+@item How does @func{thread_set_priority} affect a thread receiving donations?
+
+It should do something sensible, but no particular behavior is
+required.  None of the test cases call @func{thread_set_priority} from a
+thread while it is receiving a priority donation.
+
 @item Calling @func{printf} in @func{sema_up} or @func{sema_down} reboots!
 
 @anchor{printf Reboots}
 @item Calling @func{printf} in @func{sema_up} or @func{sema_down} reboots!
 
 @anchor{printf Reboots}