On Friday, November 1, 2013 10:52:40 PM UTC-4, MRAB wrote:
> On 02/11/2013 02:35, smhall05 wrote:
>
> > I am using a basic multiprocessing snippet I found:
>
> >
>
> > #-
>
> > from multiprocessing import Pool
>
> >
>
> > def f(x):
>
> > return x*x
>
> >
>
> > if __name__ == '__main__':
>
> > pool = Pool(processes=4) # start 4 worker processes
>
> > result = pool.apply_async(f, [10])# evaluate "f(10)" asynchronously
>
> > print result.get(timeout=1)
>
> > print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"
>
> > #-
>
> >
>
> > I am using this code to have each process go off and solve the same
> > problem, just with different inputs to the problem. I need to be able to
> > kill all processes once 1 of n processes has come up with the solution.
> > There will only be one answer.
>
> >
>
> > I have tried:
>
> >
>
> > sys.exit(0) #this causes the program to hang
>
> > pool.close()
>
> > pool.terminate
>
> >
>
> Did you actually mean "pool.terminate", or is that a typo for
>
> "pool.terminate()"?
>
>
>
> > These still allow further processing before the program terminates. What
> > else can I try? I am not able to share the exact code at this time. I can
> > provide more detail if I am unclear. Thank you
>
> >
I am not sure to be honest, however it turns out that I can't use
pool.terminate() because pool is defined in main and not accessible under my
def in which I check for the correct answer.
--
https://mail.python.org/mailman/listinfo/python-list