Add FAQ item to explain doubled test names in output.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 8 Nov 2008 01:12:23 +0000 (17:12 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 8 Nov 2008 01:12:23 +0000 (17:12 -0800)
Suggested by Godmar.

doc/threads.texi

index 377343d77323a114becf54644c9e011857e78d00..8dad172b4540dffb30722957c7c29a69f02d7698 100644 (file)
@@ -770,6 +770,28 @@ becomes the higher of the newly set priority or the highest donated
 priority.  When the donations are released, the thread's priority
 becomes the one set through the function call.  This behavior is checked
 by the @code{priority-donate-lower} test.
+
+@item Doubled test names in output make them fail.
+
+Suppose you are seeing output in which some test names are doubled,
+like this:
+
+@example
+(alarm-priority) begin
+(alarm-priority) (alarm-priority) Thread priority 30 woke up.
+Thread priority 29 woke up.
+(alarm-priority) Thread priority 28 woke up.
+@end example
+
+What is happening is that output from two threads is being
+interleaved.  That is, one thread is printing @code{"(alarm-priority)
+Thread priority 29 woke up.\n"} and another thread is printing
+@code{"(alarm-priority) Thread priority 30 woke up.\n"}, but the first
+thread is being interrupted by the second in the middle of its output.
+
+This problem indicates a bug in your priority scheduler.  After all, a
+thread with priority 29 should not be able to run while a thread with
+priority 30 has work to do.
 @end table
 
 @node Advanced Scheduler FAQ