On 07/17/2012 11:44 PM, André Panisson wrote:
Hi all,I'm having a strange behavior when executing the following script: --------------------------- import multiprocessing def f(i): return i p = multiprocessing.Pool() for i in range(20): def c(r): print r, i p.apply_async(f, (i,) , callback=c) p.close() p.join() --------------------------- Result: 0 6 1 11 2 13 3 15 4 15 5 19 etc....It seems that the callbacks of all submitted tasks are being overridden with the last callback submitted by apply_async. Is this the right behaviour or I am stumbling in some issue? I'm using Python 2.7.3 @ Ubuntu 12.04Regards,
Sorry for taking the time, I just found the solution:
-------------------
import multiprocessing
def f(i):
return i
def cfactory(i):
def c(r):
print r, i
return c
p = multiprocessing.Pool()
for i in range(20):
p.apply_async(f, (i,) , callback=cfactory(i))
p.close()
p.join()
------------------
Regards,
André
smime.p7s
Description: S/MIME Cryptographic Signature
-- http://mail.python.org/mailman/listinfo/python-list
