On Nov 2, 2013, at 1:03 AM, smhall05 <smhal...@gmail.com> wrote: > 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
So, the simplest solution to that situation is to have whichever subprocess that finds the correct answer set a flag which the calling process can check. Depending on your OS, that flag can be anything from setting a lock to something as simple as creating a file which the calling process periodically wakes up and looks for, maybe just a file in which the subprocess has written the answer. Bill -- https://mail.python.org/mailman/listinfo/python-list