Update sema_up to properly yield during execution of an interrupt handler
This commit is contained in:
@@ -120,7 +120,10 @@ sema_up (struct semaphore *sema)
|
|||||||
sema->value++;
|
sema->value++;
|
||||||
intr_set_level (old_level);
|
intr_set_level (old_level);
|
||||||
|
|
||||||
thread_yield ();
|
if (intr_context ())
|
||||||
|
intr_yield_on_return ();
|
||||||
|
else
|
||||||
|
thread_yield ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sema_test_helper (void *sema_);
|
static void sema_test_helper (void *sema_);
|
||||||
|
|||||||
Reference in New Issue
Block a user