From dbe374b4bf8befdc3cd5b2e43049503848ef2f0a Mon Sep 17 00:00:00 2001 From: Neil Webber Date: Thu, 23 May 2024 18:13:38 -0500 Subject: [PATCH] clarify (and improve) how WAIT works --- interrupts.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/interrupts.py b/interrupts.py index 182f403..1250588 100644 --- a/interrupts.py +++ b/interrupts.py @@ -146,11 +146,10 @@ class InterruptManager: return InterruptTrap(irq.pri, irq.vector) def waitstate(self, processor_pri): - """Sit idle until any interrupt happens.""" + """Sit idle until an interrupt of sufficient priority happens.""" with self.condition: - if self.pri_pending > processor_pri: - return - self.condition.wait_for(lambda: self.pri_pending) + while self.pri_pending <= processor_pri: + self.condition.wait() if __name__ == "__main__":