Thanks for those suggestions. I added select() in waitChild() to make sure that it does not spin unnecessarly. It will timeout every 0.1s (default, can be changed via self.selectTimeout) to keep a possible GUI alive.
Cheers, Michael The reason why waitChild() is implemented as a function and not as a signal handler is that e.g. vte does not work with that. It installs its own signal handler and you need to use the reaper object to catch children exiting. ** Changed in: python-apt (Ubuntu) Importance: Untriaged => Medium Assignee: (unassigned) => Michael Vogt Status: Unconfirmed => Fix Committed -- InstallProgress.waitChild spins if read fails immediately https://launchpad.net/bugs/53282 -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs