try/finally

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@45653 0039d316-1c4b-4281-b951-d872f2087c98
experimental/szager/collated-output
piman@chromium.org 16 years ago
parent 6f36372433
commit 09fd102397

@ -386,15 +386,17 @@ class ThreadPool:
while not self._done: while not self._done:
f = self._pool._queue.get() f = self._pool._queue.get()
try: try:
f(self) try:
except Exception, e: f(self)
# Catch all exceptions, otherwise we can't join the thread. Print the except Exception, e:
# backtrace now, but keep the exception so that we can raise it on the # Catch all exceptions, otherwise we can't join the thread. Print
# main thread. # the backtrace now, but keep the exception so that we can raise it
type, value, tb = sys.exc_info() # on the main thread.
traceback.print_exception(type, value, tb) type, value, tb = sys.exc_info()
self.exceptions.append(e) traceback.print_exception(type, value, tb)
self._pool._JobDone() self.exceptions.append(e)
finally:
self._pool._JobDone()
def _AddJobToQueue(self, job): def _AddJobToQueue(self, job):
self._condition.acquire() self._condition.acquire()

Loading…
Cancel
Save