Bläddra i källkod

Kernel: Make Lock::lock() assert early that we're not in the scheduler

The scheduler is not allowed to take locks, so if that's happening,
we want to make that clear instead of crashing with the more general
"Interrupts disabled while trying to take Lock" error.
Andreas Kling 5 år sedan
förälder
incheckning
933a98f8fa
1 ändrade filer med 1 tillägg och 1 borttagningar
  1. 1 1
      Kernel/Lock.cpp

+ 1 - 1
Kernel/Lock.cpp

@@ -2,12 +2,12 @@
 
 void Lock::lock()
 {
+    ASSERT(!Scheduler::is_active());
     if (!are_interrupts_enabled()) {
         kprintf("Interrupts disabled when trying to take Lock{%s}\n", m_name);
         dump_backtrace();
         hang();
     }
-    ASSERT(!Scheduler::is_active());
     for (;;) {
         if (CAS(&m_lock, 1, 0) == 0) {
             if (!m_holder || m_holder == current) {