Massive refactoring for tasks system.
Improved logging and exception handing for tasks.
Added Policy.solve_with_downloads(). If a solution is ready then it returns
right away. Otherwise, it downloads every feed used, resolving after each one
until there are no more downloads in progress. This replaces Autopolicy's
recalculate_with_dl with a tasks-based one.
Added Handler.wait_for_blocker(). This runs a GLib mainloop until a blocker
fires. Useful for integrating with non-Blocker aware code.
Made 'ready' a propery on Solver, not a return value.
Replaced Download.on_success callbacks with a Blocker.
Changes to many 'start' methods so that they actually
manage the whole process, not just the beginning. Renamed:
start_downloading_* -> download_*
Some do more complex workflows. e.g. the download_and_import_feed task handles
downloading the feed, downloading the keys, confirming the keys and importing
the feed.
12 files changed: