summaryrefslogtreecommitdiff
blob: 0aa7212b9a342c5b94d2fcc0752726c20e885cdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Needed to prevent a loop while calling cythonize on macOS - or any platform
defaulting to the 'spawn' method, as Python 3.8 does on Darwin.

https://github.com/cython/cython/pull/3263
From 15ae78bb74a856836dd64828326f4f0812d36520 Mon Sep 17 00:00:00 2001
From: Marcel Bargull <marcel.bargull@udo.edu>
Date: Fri, 6 Dec 2019 18:21:19 +0100
Subject: [PATCH] Disable parallel cythonization for "spawn" start method.

---
 Cython/Build/Dependencies.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Cython/Build/Dependencies.py b/Cython/Build/Dependencies.py
index 593e00a6ef..f9b9c15bc5 100644
--- a/Cython/Build/Dependencies.py
+++ b/Cython/Build/Dependencies.py
@@ -1073,6 +1073,11 @@ def copy_to_build_dir(filepath, root=os.getcwd()):
 
     if N <= 1:
         nthreads = 0
+    if nthreads:
+        import multiprocessing
+        if multiprocessing.get_start_method() == 'spawn':
+            print('Disabling parallel cythonization for "spawn" process start method.')
+            nthreads = 0
     if nthreads:
         import multiprocessing
         pool = multiprocessing.Pool(