Como capturar exceções em trabalhadores no multiprocessamento
Estou trabalhando com o módulo de multiprocessamento no Python (2.7.3) e quero depurar algumas coisas acontecendo nos meus trabalhadores. No entanto, parece que não consigo capturar nenhuma exceção nos threads de trabalho.
Um exemplo mínimo:
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()
Isso deve gerar um IndexError, mas apenas minha saída é
Multiprocessing done!
Existe uma maneira de me mostrar todas as exceções que ocorrem nos threads de trabalho sem aumentar manualmente as minhas?