Merged from trunk 10988:10996
| 10989 | * Call self._wait() when unregistering output handlers, in |
| zmedico | order to avoid triggering a tight loop. Also fix |
| | Subprocess._wait() to only schedule when self.registered is |
| | True. * Add an assertion inside Scheduler._schedule_main() |
| | to try and detect tight loops like the one above. * Fix typo |
| | in Scheduler._merge_exit(). |
| 10990 | Remove redundant call to _schedule_main(). |
| zmedico | |
| 10991 | Fix Scheduler._dependent_on_scheduled_merges() to properly |
| zmedico | distinguish "nomerge" nodes from "uninstall" nodes. |
| 10992 | In scheduler._schedule_main(), only consider a poll() event |
| zmedico | to be a state change if it results in a handler being |
| | unregistered. |
| 10993 | Make the "tight loop" assertion trigger whenever there is no |
| zmedico | state change detected for a given _schedule_main() call. |
| 10994 | * Fix _choose_pkg() to pop the first node if there are no |
| zmedico | other jobs running. * Allow _choose_pkg() to choose an |
| | uninstall node when it reaches the front of the queue. TODO: |
| | fix order for uninstall operations. * Fix |
| | _dependent_on_scheduled_merges() to handle direct circular |
| | deps correctly. |
| 10995 | Fix _prune_digraph() to correctly distinguish "nomerge" |
| zmedico | nodes from "uninstall" nodes. |
| 10996 | Fix Scheduler._choose_pkg() to perform uninstallation |
| zmedico | actions (due to blockers) in the correct order when building |
| | in parallel. |
svn path=/main/branches/prefix/; revision=11000