Revert "Adjust p2.patch and p3.patch so that threads kernel still builds"
authorJohn Ousterhout <ouster@cs.stanford.edu>
Wed, 1 Apr 2020 18:48:04 +0000 (11:48 -0700)
committerJohn Ousterhout <ouster@cs.stanford.edu>
Wed, 1 Apr 2020 18:48:04 +0000 (11:48 -0700)
This reverts commit 8fc07451352c571d93373c4db8657fdcb86057aa.
The commit breaks tests in vm.

solutions/p2.patch
solutions/p3.patch

index 42296f4711a41a7bcfb00dfc0cc5f24ec49c1b83..5b3646734279ff500bfa36983947062b20594ca3 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/src/threads/thread.c b/src/threads/thread.c
-index 86614f5..7c19894 100644
+index 86614f5..9fa7f1c 100644
 --- a/src/threads/thread.c
 +++ b/src/threads/thread.c
 @@ -15,6 +15,7 @@
@@ -10,14 +10,16 @@ index 86614f5..7c19894 100644
  #endif
  
  /* Random value for struct thread's `magic' member.
-@@ -350,6 +351,7 @@ thread_exit (void)
-
+@@ -351,7 +352,8 @@ thread_exit (void)
  #ifdef USERPROG
    process_exit ();
-+  syscall_exit ();
  #endif
-
+-
++  syscall_exit ();
++  
    /* Remove thread from all threads list, set our status to dying,
+      and schedule another process.  That process will destroy us
+      when it calls thread_schedule_tail(). */
 @@ -608,6 +610,10 @@ init_thread (struct thread *t, const char *name, int priority)
    strlcpy (t->name, name, sizeof t->name);
    t->stack = (uint8_t *) t + PGSIZE;
index a5b10b187c3dab21b6fd01bad4d8dcff6ce0bc69..9554a857c488d03e56ee8b5709a9001f63f23579 100644 (file)
@@ -14,7 +14,7 @@ index e997d27..1057023 100644
  # Filesystem code.
  filesys_SRC  = filesys/filesys.c      # Filesystem core.
 diff --git a/src/devices/timer.c b/src/devices/timer.c
-index 3ed10ad..1b14cdc 100644
+index 1aebae7..4b920e9 100644
 --- a/src/devices/timer.c
 +++ b/src/devices/timer.c
 @@ -206,7 +206,6 @@ timer_interrupt (struct intr_frame *args UNUSED)
@@ -348,7 +348,7 @@ index 53197bb..317c68a 100644
  
  /* Wakes up all threads, if any, waiting on COND (protected by
 diff --git a/src/threads/thread.c b/src/threads/thread.c
-index 7c19894..31e2ba6 100644
+index 9fa7f1c..f9f2310 100644
 --- a/src/threads/thread.c
 +++ b/src/threads/thread.c
 @@ -5,13 +5,11 @@
@@ -512,6 +512,20 @@ index 7c19894..31e2ba6 100644
  /* Transitions a blocked thread T to the ready-to-run state.
     This is an error if T is not blocked.  (Use thread_yield() to
     make the running thread ready.)
+@@ -349,11 +283,11 @@ thread_exit (void)
+ {
+   ASSERT (!intr_context ());
++  syscall_exit ();
+ #ifdef USERPROG
+   process_exit ();
+ #endif
+-  syscall_exit ();
+-  
++
+   /* Remove thread from all threads list, set our status to dying,
+      and schedule another process.  That process will destroy us
+      when it calls thread_schedule_tail(). */
 @@ -399,26 +333,11 @@ thread_foreach (thread_action_func *func, void *aux)
      }
  }