From: Christian Heller Date: Sun, 20 Aug 2017 19:27:51 +0000 (+0200) Subject: Refactor position of pool and world. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/static/%7B%7Byoutube_prefix%7D%7D%7B%7Bvideo_id%7D%7D?a=commitdiff_plain;h=c26fe38bd460cb28bf01d06df94310bcc4219c3b;p=plomrogue2-experiments Refactor position of pool and world. --- diff --git a/server.py b/server.py index e9b519d..ed60b6a 100755 --- a/server.py +++ b/server.py @@ -93,9 +93,11 @@ def fib(n): class CommandHandler: - def __init__(self, world, queues_out): - self.world = world + def __init__(self, queues_out): + from multiprocessing import Pool self.queues_out = queues_out + self.pool = Pool() + self.world = World() def send_to(self, connection_id, msg): """Send msg to client of connection_id.""" @@ -112,7 +114,6 @@ class CommandHandler: Numbers are calculated in parallel as far as possible, using fib(). A 'CALCULATING …' message is sent to caller before the result. """ - from multiprocessing import Pool fib_fail = 'MALFORMED FIB REQUEST' if len(tokens) < 2: self.send_to(connection_id, fib_fail) @@ -125,8 +126,7 @@ class CommandHandler: self.send_to(connection_id, fib_fail) return self.send_to(connection_id, 'CALCULATING …') - with Pool(len(numbers)) as p: - results = p.map(fib, numbers) + results = self.pool.map(fib, numbers) reply = ' '.join([str(r) for r in results]) self.send_to(connection_id, reply) @@ -188,8 +188,7 @@ def io_loop(q): sending out replies. """ queues_out = {} - world = World() - command_handler = CommandHandler(world, queues_out) + command_handler = CommandHandler(queues_out) while True: x = q.get() command_type = x[0]