瀏覽代碼

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 6 年之前
父節點
當前提交
933a98f8fa
共有 1 個文件被更改,包括 1 次插入1 次删除
  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) {