--resume Resumes the last merge operation. Please note that this operation will only return an error on failure. If there is nothing for portage to do, then portage will exit with a message and a success condition. <the emerge man page; formatting adapted> This is the documentation for the --resume function of emerge. Currently, when something breaks, portage drops out, and thus you get: rot@icebox # emerge --resume resuming merge... Some people do multiple merges at once when they don't overlap. I often do emerge -eU world when getting a new compiler or testing new cflags (though sometimes I grep out the use from IUSE in /var/db/pkg). --resume becomes useless often, because the /var/cache/edb/mtimedb gets fragged by the multiple portage runs if more than one dies. Why not create /var/cache/edb/mtimedb.<console>? Then I'd have: vc/1: root@icebox # emerge -eU world vc/2: root@icebox # emerge --oneshot dillo imagemagick xfree pty4: root@icebox # emerge mplayer /var/cache/edb/mtimedb.{vc.1,vc.2,pty4} Then if they ALL break, emerge --resume will work as expected in all cases. Also, if logging off and back on, it will STILL work. Also, emerge --resume=vc/1 on vc/4 would resume from mtimedb.vc.1, for completeness. The point of this is that the documentation does not specify what the "last merge operation" is. It is implied by wording that this means the last merge operation system-wide; however, this COULD be interpreted as the last merge operation in the session. This would come close to fitting the latter, but would also allow the merge to be resumed when the session is lost (log out/back in, system crash, etc). In either case, the functionality is still very useful.
Portage lacks concurrency support for proper parallel merging. Stopping and starting multiple merges using the suggested --resume functionality would make things worse in this regard, and there is no way to gaurentee that all merges would complete in a sane way.