--- /n/sources/plan9/sys/src/9k/k10/trap.c Tue Jun 16 13:38:31 2026 +++ /sys/src/9k/k10/trap.c Tue Jun 16 13:38:31 2026 @@ -339,7 +339,7 @@ trap(Ureg* ureg) if(ctl->irq == IdtPIC+IrqCLOCK || ctl->irq == IdtTIMER) clockintr = 1; - if(up && !clockintr) + if(up && !clockintr && m->ilockdepth == 0) preempted(); } } @@ -375,7 +375,7 @@ trap(Ureg* ureg) splhi(); /* delaysched set because we held a lock or because our quantum ended */ - if(up && up->delaysched && clockintr){ + if(up && up->delaysched && clockintr && m->ilockdepth == 0){ sched(); splhi(); }