Update docs.
[pintos-anon] / doc / threads.texi
index 2e779eecb40a613b0203f999120d14ad141fe4db..451eff8ee2cc73bff7901efe24d077aba5a2d021 100644 (file)
@@ -321,6 +321,10 @@ join works for.  Don't overdo the output volume, please!
 Be careful to program this function correctly.  You will need its
 functionality for project 2.
 
 Be careful to program this function correctly.  You will need its
 functionality for project 2.
 
+Once you've implemented @code{thread_join()}, define
+@code{THREAD_JOIN_IMPLEMENTED} in @file{constants.h}.
+@xref{Conditional Compilation}, for more information.
+
 @node Problem 1-3 Priority Scheduling
 @section Problem 1-3: Priority Scheduling
 
 @node Problem 1-3 Priority Scheduling
 @section Problem 1-3: Priority Scheduling
 
@@ -429,14 +433,6 @@ Test cases should be replacements for the existing @file{test.c}
 file.  Put them in a @file{threads/testcases} directory.
 @xref{TESTCASE}, for more information.
 
 file.  Put them in a @file{threads/testcases} directory.
 @xref{TESTCASE}, for more information.
 
-@item
-@b{If a thread finishes, should its children be terminated immediately,
-or should they finish normally?}
-
-You should feel free to decide what semantics you think this
-should have. You need only provide justification for your
-decision.
-
 @item
 @b{Why can't I disable interrupts?}
 
 @item
 @b{Why can't I disable interrupts?}
 
@@ -475,6 +471,18 @@ problems.  There are other, equally correct solutions that do not
 require interrupt manipulation.  However, if you do manipulate
 interrupts and @strong{correctly and fully document it} in your design
 document, we will allow limited use of interrupt disabling.
 require interrupt manipulation.  However, if you do manipulate
 interrupts and @strong{correctly and fully document it} in your design
 document, we will allow limited use of interrupt disabling.
+
+@item
+@b{What does ``warning: no previous prototype for `@var{function}''
+mean?}
+
+It means that you defined a non-@code{static} function without
+preceding it by a prototype.  Because non-@code{static} functions are
+intended for use by other @file{.c} files, for safety they should be
+prototyped in a header file included before their definition.  To fix
+the problem, add a prototype in a header file that you include, or, if
+the function isn't actually used by other @file{.c} files, make it
+@code{static}.
 @end enumerate
 
 @item Alarm Clock FAQs
 @end enumerate
 
 @item Alarm Clock FAQs