diff --git a/src/trezor/loop.py b/src/trezor/loop.py index d23318d84..69ea4784b 100644 --- a/src/trezor/loop.py +++ b/src/trezor/loop.py @@ -53,7 +53,7 @@ def unschedule(task): def pause(task, iface): - tasks = _paused.get(iface) + tasks = _paused.get(iface, None) if tasks is None: tasks = _paused[iface] = [] tasks.append(task) @@ -94,11 +94,9 @@ def run(): if io.poll(_paused, msg_entry, delay): # message received, run tasks paused on the interface - msg_tasks = _paused.get(msg_entry[0]) - if msg_tasks is not None: - for task in msg_tasks: - _step(task, msg_entry[1]) - msg_tasks.clear() + msg_tasks = _paused.pop(msg_entry[0], ()) + for task in msg_tasks: + _step(task, msg_entry[1]) else: # timeout occurred, run the first scheduled task if _queue: