Skip to content

Commit 1a182a9

Browse files
committed
Use map_async and get to avoid a deadlock
1 parent d684890 commit 1a182a9

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

setupext.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -1788,7 +1788,8 @@ def check_requirements(self):
17881788
except:
17891789
return "unknown (can not use multiprocessing to determine)"
17901790
try:
1791-
success, msg = p.map(backend_gtk3agg_internal_check, [0])[0]
1791+
res = p.map_async(backend_gtk3agg_internal_check, [0])
1792+
success, msg = res.get(timeout=5)[0]
17921793
except:
17931794
success = False
17941795
msg = "Could not determine"
@@ -1852,7 +1853,8 @@ def check_requirements(self):
18521853
p = multiprocessing.Pool()
18531854
except:
18541855
return "unknown (can not use multiprocessing to determine)"
1855-
success, msg = p.map(backend_gtk3cairo_internal_check, [0])[0]
1856+
res = p.map_async(backend_gtk3cairo_internal_check, [0])
1857+
success, msg = res.get(timeout=5)[0]
18561858
p.close()
18571859
p.join()
18581860
if success:
@@ -1988,7 +1990,8 @@ def check_requirements(self):
19881990
else:
19891991
# Multiprocessing OK
19901992
try:
1991-
msg = p.map(self.callback, [self])[0]
1993+
res = p.map_async(self.callback, [self])
1994+
msg = res.get(timeout=5)[0]
19921995
except:
19931996
# If we hit an error on multiprocessing raise it
19941997
raise

0 commit comments

Comments
 (0)