Sleep until recent_cpu actually decays.
[pintos-anon] / src / tests / threads / mlfqs-recent-1.c
index 670b00cb05ba0180ad1729b8d441c9c952477944..425867145c79b2e54f892e51d8f0da33473cf53a 100644 (file)
@@ -114,10 +114,14 @@ test_mlfqs_recent_1 (void)
   
   ASSERT (thread_mlfqs);
 
-  msg ("Sleeping 10 seconds to allow recent_cpu to decay, please wait...");
-  start_time = timer_ticks ();
-  timer_sleep (DIV_ROUND_UP (start_time, TIMER_FREQ) - start_time
-               + 10 * TIMER_FREQ);
+  do 
+    {
+      msg ("Sleeping 10 seconds to allow recent_cpu to decay, please wait...");
+      start_time = timer_ticks ();
+      timer_sleep (DIV_ROUND_UP (start_time, TIMER_FREQ) - start_time
+                   + 10 * TIMER_FREQ);
+    }
+  while (thread_get_recent_cpu () > 700);
 
   start_time = timer_ticks ();
   for (;;)