diff --git a/lib/mcpu.py b/lib/mcpu.py index a802051dfdd805f6f0da777ec02940821fe1bdc3..22aa42eac31b74abab845af95e30f33ab685a400 100644 --- a/lib/mcpu.py +++ b/lib/mcpu.py @@ -129,7 +129,9 @@ class Processor(object): given LU and its opcodes. """ - if level in lu.needed_locks: + if level not in locking.LEVELS: + result = self._ExecLU(lu) + elif level in lu.needed_locks: # This gives a chance to LUs to make last-minute changes after acquiring # locks at any preceding level. lu.DeclareLocks(level) @@ -146,7 +148,7 @@ class Processor(object): if lu.needed_locks[level]: self.context.glm.release(level) else: - result = self._ExecLU(lu) + result = self._LockAndExecLU(lu, level + 1) return result