diff options
Diffstat (limited to 'kernel/interrupts.c')
| -rw-r--r-- | kernel/interrupts.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/interrupts.c b/kernel/interrupts.c index 9c485cc..94c1bb1 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -79,7 +79,7 @@ uint32_t interrupt_handler(uint32_t esp, uint32_t irq) case INTERRUPT_APIC_TIMER: case INTERRUPT_IPI: - esp=scheduler_run(esp); + esp=scheduler_run(esp,0); break; case 255: // default or spurious @@ -89,7 +89,10 @@ uint32_t interrupt_handler(uint32_t esp, uint32_t irq) // reschedule to kernel worker on these if(irq==INTERRUPT_SYSCALL||irq==INTERRUPT_KEYBOARD||irq==INTERRUPT_MOUSE) + { + esp=scheduler_wake_worker(esp); + } // ack all to LAPIC, except software syscalls if(irq!=INTERRUPT_SYSCALL) |
