Merged from trunk 11048:11057
| 11049 | Split out a generic SubProcess._unregister() method that's |
| zmedico | called from _wait() to make sure everything is cleaned up |
| | before wait() returns. This might solve an intermittent |
| | KeyError that is sometimes raised from the main poll() loop |
| | when a handler is no longer registered for a poll() event |
| | that has occurred. |
| 11050 | Split out a _main_loop_cleanup() method from |
| zmedico | Scheduler._merge() and call it before restarting in |
| | _restart_if_necessary() to kill any parallel-fetch tasks |
| | that may still be running. |
| 11051 | Add a PollScheduler._next_poll_event() method to maintain a |
| zmedico | central event queue between _poll_loop() and |
| | _schedule_wait(). This solves an intermittent KeyError from |
| | _poll_loop() which occured when an event handler called |
| | _schedule_wait() which unregistered an event handler for an |
| | event that _poll_loop() had already recieved but hadn't |
| | processed yet. |
| 11052 | Use self.registered to return early from SubProcess.poll() |
| zmedico | when possible, and remove the related code from |
| | SequentialTaskQueue.schedule() since this makes it obsolete. |
| 11053 | Make AsynchronousTask "registered" attributes private since |
| zmedico | poll() and wait() do the job now. Also, hide |
| | SubProcess.files since there's no reason to expose it. |
| 11054 | * Fix --keep-going breakage that occured when |
| zmedico | Scheduler._choose_pkg() was introduced. * Handle multiple |
| | failed builds when buildinding in parallel. * Fix |
| | Scheduler._do_merge_exit() to remove the correct package |
| | since it's not always at position 0 when using --jobs. in |
| | parallel, so |
| 11055 | When there is more than one failure, show a summary packages |
| zmedico | that failed to build or install. This is especially useful |
| | when using --jobs or --keep-going since there can be |
| | multiple failures. |
| 11056 | When packages fail with --jobs > 1 and the "echo" elog |
| zmedico | module is not enabled, emulate elog's mod_echo module to |
| | show the 'error' level messages, which should include the |
| | important die message. This is implemented by adding a |
| | private hook inside elog_process() which the scheduler uses |
| | to collect error messages. |
| 11057 | Since lots of packages will have to be fixed before stable |
| zmedico | portage can abort with "this code is not 64bit clean", |
| | convert the die call to an eerror message instructing the |
| | user to file a bug at bugs.gentoo.org. This should allow us |
| | to stabilize portage-2.2 without having to ensure that the |
| | entire stable tree is 64 bit clean first. |
svn path=/main/branches/prefix/; revision=11058