Mercurial > hg
changeset 31118:a91c62752d08 stable
worker: flush messages written by child processes before exit
I found some child outputs were lost while testing the previous patch. Since
os._exit() does nothing special, we need to do that explicitly.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 25 Feb 2017 12:48:50 +0900 |
parents | 92bca12328d1 |
children | 13bbcd56c57a 25703b624d27 |
files | mercurial/worker.py tests/test-simple-update.t |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/worker.py Sat Feb 25 12:33:37 2017 +0900 +++ b/mercurial/worker.py Sat Feb 25 12:48:50 2017 +0900 @@ -148,12 +148,16 @@ # may do some clean-ups which could cause surprises like deadlock. # see sshpeer.cleanup for example. try: - scmutil.callcatch(ui, workerfunc) + try: + scmutil.callcatch(ui, workerfunc) + finally: + ui.flush() except KeyboardInterrupt: os._exit(255) except: # never return, therefore no re-raises try: ui.traceback() + ui.flush() finally: os._exit(255) else:
--- a/tests/test-simple-update.t Sat Feb 25 12:33:37 2017 +0900 +++ b/tests/test-simple-update.t Sat Feb 25 12:48:50 2017 +0900 @@ -84,7 +84,8 @@ $ hg update null 0 files updated, 0 files merged, 100 files removed, 0 files unresolved - $ hg update + $ hg update -v | grep 100 + getting 100 100 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd ..