Как отловить исключения у работников в многопроцессорной среде
Я работаю с модулем многопроцессорности в Python (2.7.3) и хочу отладить некоторые вещи, происходящие с моими работниками. Тем не менее, я, кажется, не могу перехватить какие-либо исключения в рабочих потоках.
Минимальный пример:
import multiprocessing as mp
a=[1]
def worker():
print a[2]
def pool():
pool = mp.Pool(processes=1)
pool.apply_async(worker, args = ())
pool.close()
pool.join()
print "Multiprocessing done!"
if __name__ == '__main__':
pool()
Ожидается, что это вызовет IndexError, но мой вывод только
Multiprocessing done!
Есть ли способ показать мне все исключения, возникающие в рабочих потоках, без поднятия моего собственного?