diff --git a/beat/backend/python/test/prefix/algorithms/autonomous/multiprocess/1.py b/beat/backend/python/test/prefix/algorithms/autonomous/multiprocess/1.py index c000d7f0fc82e5deb6462626a36367400efe3b05..6a1f015a9b5d866cf47bd3786646ee52aa19c094 100755 --- a/beat/backend/python/test/prefix/algorithms/autonomous/multiprocess/1.py +++ b/beat/backend/python/test/prefix/algorithms/autonomous/multiprocess/1.py @@ -34,6 +34,8 @@ ################################################################################### import multiprocessing +import platform +import sys def foo(queue_in, queue_out, index): @@ -64,14 +66,20 @@ class Algorithm: num_thread = data_loader.count() - queue_in = multiprocessing.JoinableQueue(num_thread) + version = sys.version_info + if platform.system() == "Darwin" and version[0] == 3 and version[1] >= 8: + ctx = multiprocessing.get_context("fork") + else: + ctx = multiprocessing.get_context() + + queue_in = ctx.JoinableQueue(num_thread) queue_out = [] # Start worker processes jobs = [] for i in range(num_thread): - queue_out.append(multiprocessing.Queue()) - p = multiprocessing.Process(target=foo, args=(queue_in, queue_out[i], i)) + queue_out.append(ctx.Queue()) + p = ctx.Process(target=foo, args=(queue_in, queue_out[i], i)) jobs.append(p) p.start() diff --git a/beat/backend/python/test/prefix/algorithms/sequential/multiprocess/1.py b/beat/backend/python/test/prefix/algorithms/sequential/multiprocess/1.py index f5389ebdee740a2303e4359c0770f454a5882e2d..cd2939ff290fa66a5c9aeeda7b9f85cde003a8e6 100755 --- a/beat/backend/python/test/prefix/algorithms/sequential/multiprocess/1.py +++ b/beat/backend/python/test/prefix/algorithms/sequential/multiprocess/1.py @@ -34,6 +34,8 @@ ################################################################################### import multiprocessing +import platform +import sys def foo(queue_in, queue_out, index): @@ -64,14 +66,20 @@ class Algorithm: num_thread = data_loader.count() - queue_in = multiprocessing.JoinableQueue(num_thread) + version = sys.version_info + if platform.system() == "Darwin" and version[0] == 3 and version[1] >= 8: + ctx = multiprocessing.get_context("fork") + else: + ctx = multiprocessing.get_context() + + queue_in = ctx.JoinableQueue(num_thread) queue_out = [] # Start worker processes jobs = [] for i in range(num_thread): - queue_out.append(multiprocessing.Queue()) - p = multiprocessing.Process(target=foo, args=(queue_in, queue_out[i], i)) + queue_out.append(ctx.Queue()) + p = ctx.Process(target=foo, args=(queue_in, queue_out[i], i)) jobs.append(p) p.start()