Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #25544 > unrolled thread

Re: multiprocessing: apply_async with different callbacks

Started byAndré Panisson <panisson@di.unito.it>
First post2012-07-18 01:17 +0200
Last post2012-07-18 01:17 +0200
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: multiprocessing: apply_async with different callbacks André Panisson <panisson@di.unito.it> - 2012-07-18 01:17 +0200

#25544 — Re: multiprocessing: apply_async with different callbacks

FromAndré Panisson <panisson@di.unito.it>
Date2012-07-18 01:17 +0200
SubjectRe: multiprocessing: apply_async with different callbacks
Message-ID<mailman.2252.1342567044.4697.python-list@python.org>

[Multipart message — attachments visible in raw view] — view raw

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.04
>
> Regards,


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é

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web