In idle(), "sti; hlt" must be atomic or we can waste time waiting for
[pintos-anon] / src / threads / init.c
index c17316aa59efec1951ad48eed5c8e4522a3e0381..f6a01dc67080688e44d3f45759c73745dcc75331 100644 (file)
@@ -120,13 +120,8 @@ main (void)
   /* Run a user program. */
   if (initial_program != NULL)
     {
-      tid_t tid;
       printf ("\nExecuting '%s':\n", initial_program);
-      tid = process_execute (initial_program);
-#ifdef THREAD_JOIN_IMPLEMENTED
-      if (tid != TID_ERROR)
-        thread_join (tid);
-#endif
+      process_wait (process_execute (initial_program));
     }
 #else
   /* Run the compiled-in test function. */