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