Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/worker.py @ 19408:c7ec39c1a381
worker: properly report errors from worker processes (issue3982)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 16 Jul 2013 15:18:12 -0500 |
parents | 3185b347ae98 |
children | 1e5b38a919dd |
comparison
equal
deleted
inserted
replaced
19407:ce3d1cf957f8 | 19408:c7ec39c1a381 |
---|---|
87 for i, item in func(*(staticargs + (pargs,))): | 87 for i, item in func(*(staticargs + (pargs,))): |
88 os.write(wfd, '%d %s\n' % (i, item)) | 88 os.write(wfd, '%d %s\n' % (i, item)) |
89 os._exit(0) | 89 os._exit(0) |
90 except KeyboardInterrupt: | 90 except KeyboardInterrupt: |
91 os._exit(255) | 91 os._exit(255) |
92 except: # re-raises (close enough for debugging anyway) | 92 # other exceptions are allowed to propagate, we rely |
93 try: | 93 # on lock.py's pid checks to avoid release callbacks |
94 ui.traceback() | |
95 finally: | |
96 os._exit(255) | |
97 pids.append(pid) | 94 pids.append(pid) |
98 pids.reverse() | 95 pids.reverse() |
99 os.close(wfd) | 96 os.close(wfd) |
100 fp = os.fdopen(rfd, 'rb', 0) | 97 fp = os.fdopen(rfd, 'rb', 0) |
101 def killworkers(): | 98 def killworkers(): |