Auto-throw exceptions when resuming tasksrethrow
commit6b90400f174be0631cd5050d5dc5964bae174cb2
authorThomas Leonard <talex5@gmail.com>
Sat, 7 Jan 2012 13:58:05 +0000 (7 13:58 +0000)
committerThomas Leonard <talex5@gmail.com>
Sat, 7 Jan 2012 14:05:50 +0000 (7 14:05 +0000)
tree5a6e68d38f74738ec151abcabce5cf44f299c60f
parent1f4ae3cbf528fbd044587ef8eb1159d7861a9a31
Auto-throw exceptions when resuming tasks

Before, whenever a task waited for a blocker it had to call
tasks.check(blocker) afterwards to check whether the blocker had an exception.
Now, taking advantage of generator.throw in Python 2.6, the exception is raised
directly from the yield statement.

When upgrading existing code, it is always safe to transform:

yield foo
...

into

try:
yield foo
except:
pass
...

Normally, however, you can simply eliminate the check, so:

yield foo
tasks.check(foo)

becomes just:

yield foo
14 files changed:
zeroinstall/0launch-gui/iface_browser.py
zeroinstall/0launch-gui/main.py
zeroinstall/0launch-gui/mainwindow.py
zeroinstall/0launch-gui/properties.py
zeroinstall/cmd/import.py
zeroinstall/injector/driver.py
zeroinstall/injector/fetch.py
zeroinstall/injector/handler.py
zeroinstall/injector/iface_cache.py
zeroinstall/injector/packagekit.py
zeroinstall/injector/scheduler.py
zeroinstall/injector/selections.py
zeroinstall/injector/trust.py
zeroinstall/support/tasks.py