comparison mercurial/worker.py @ 18908:779e3d9b7a1d

worker: catch all exceptions, try to exit usefully/safely
author Bryan O'Sullivan <bryano@fb.com>
date Thu, 11 Apr 2013 13:30:31 -0700
parents 9955fc5ee24b
children 05d5821e0dc8
comparison
equal deleted inserted replaced
18907:af9fa8d4c939 18908:779e3d9b7a1d
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)
93 try:
94 ui.traceback()
95 finally:
96 os._exit(255)
92 pids.append(pid) 97 pids.append(pid)
93 pids.reverse() 98 pids.reverse()
94 os.close(wfd) 99 os.close(wfd)
95 fp = os.fdopen(rfd, 'rb', 0) 100 fp = os.fdopen(rfd, 'rb', 0)
96 def killworkers(): 101 def killworkers():