Wie man Ausnahmen bei Arbeitern in Multiprocessing abfängt
Ich arbeite mit dem Multiprocessing-Modul in Python (2.7.3) und möchte einige Vorgänge in meinen Workern debuggen. Es scheint mir jedoch nicht möglich zu sein, Ausnahmen in den Worker-Threads zu erkennen.
Ein minimales Beispiel:
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()
Es wird erwartet, dass dies einen IndexError auslöst, aber meine Ausgabe ist nur
Multiprocessing done!
Gibt es eine Möglichkeit, mir alle Ausnahmen anzuzeigen, die in den Arbeitsthreads auftreten, ohne meine eigenen manuell zu erhöhen?