diff options
Diffstat (limited to 'src/stacks.c')
-rw-r--r-- | src/stacks.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/stacks.c b/src/stacks.c index e67aeb6a..7759c577 100644 --- a/src/stacks.c +++ b/src/stacks.c @@ -671,6 +671,8 @@ check_irqs(void) stack_hop_back(0, 0, _cfunc16_check_irqs); return; } + if (MODE16) + clock_poll_irq(); asm volatile("sti ; nop ; rep ; nop ; cli ; cld" : : :"memory"); } @@ -706,7 +708,8 @@ wait_irq(void) void yield_toirq(void) { - if (!MODESEGMENT && (have_threads() || !CanInterrupt)) { + if (!CONFIG_HARDWARE_IRQ + || (!MODESEGMENT && (have_threads() || !CanInterrupt))) { // Threads still active or irqs not available - do a yield instead. yield(); return; |