Comments.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 28 Sep 2004 07:40:15 +0000 (07:40 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 28 Sep 2004 07:40:15 +0000 (07:40 +0000)
src/threads/thread.c
src/threads/thread.h

index afb2006bc1aa8a51ebffc002f80d29e766470e96..b1d25db83da7ecbae5e14d1a8c8451f2932b5f8d 100644 (file)
@@ -59,10 +59,11 @@ void schedule_tail (struct thread *prev);
 static tid_t allocate_tid (void);
 
 /* Initializes the threading system by transforming the code
-   that's currently running into a thread.  Note that this is
-   possible only because the loader was careful to put the bottom
-   of the stack at a page boundary; it won't work in general.
-   Also initializes the run queue.
+   that's currently running into a thread.  This can't work in
+   general and it is possible in this case only because loader.S
+   was careful to put the bottom of the stack at a page boundary.
+
+   Also initializes the run queue and the tid lock.
 
    After calling this function, be sure to initialize the page
    allocator before trying to create any threads with
index c0551273d80b5927ad0f41f76f94ca598a9de9b7..55ac2324d14568ae53e17ae6b00332d829babe77 100644 (file)
@@ -47,11 +47,11 @@ typedef int tid_t;
              |                                 |
              |                                 |
              +---------------------------------+
-             |             magic               |
-             |                               |
-             |                               |
-             |              name               |
-             |             status              |
+             |              magic              |
+             |                :                |
+             |                :                |
+             |               name              |
+             |              status             |
         0 kB +---------------------------------+
 
    The upshot of this is twofold:
@@ -66,7 +66,7 @@ typedef int tid_t;
          large.  If a stack overflows, it will corrupt the thread
          state.  Thus, kernel functions should not allocate large
          structures or arrays as non-static local variables.  Use
-         dynamic allocation with malloc() or palloc_get()
+         dynamic allocation with malloc() or palloc_get_page()
          instead.
 
    The first symptom of either of these problems will probably be
@@ -97,7 +97,7 @@ struct thread
     uint32_t *pagedir;                  /* Page directory. */
 #endif
 
-    /* Owned by thread.c */
+    /* Owned by thread.c. */
     unsigned magic;                     /* Detects stack overflow. */
   };
 
@@ -114,6 +114,7 @@ void thread_unblock (struct thread *);
 struct thread *thread_current (void);
 tid_t thread_tid (void);
 const char *thread_name (void);
+
 void thread_exit (void) NO_RETURN;
 void thread_yield (void);
 void thread_block (void);