File tree 1 file changed +31
-8
lines changed
1 file changed +31
-8
lines changed Original file line number Diff line number Diff line change @@ -1788,17 +1788,26 @@ def check_requirements(self):
1788
1788
except :
1789
1789
return "unknown (can not use multiprocessing to determine)"
1790
1790
try :
1791
- res = p .map_async (backend_gtk3agg_internal_check , [0 ])
1792
- success , msg = res .get (timeout = 5 )[0 ]
1791
+ res = p .map_async (backend_gtk3agg_internal_check , [0 ])
1792
+ success , msg = res .get (timeout = 5 )[0 ]
1793
+ except Queue .Empty :
1794
+ p .terminate ()
1795
+ # No result returned. Probaly hanging, terminate the process.
1796
+ success = False
1797
+ raise
1793
1798
except :
1799
+ p .close ()
1800
+ # Some other error.
1794
1801
success = False
1795
1802
msg = "Could not determine"
1796
- finally :
1803
+ raise
1804
+ else :
1797
1805
p .close ()
1806
+ finally :
1798
1807
p .join ()
1808
+
1799
1809
if success :
1800
1810
BackendAgg .force = True
1801
-
1802
1811
return msg
1803
1812
else :
1804
1813
raise CheckFailed (msg )
@@ -1856,15 +1865,22 @@ def check_requirements(self):
1856
1865
try :
1857
1866
res = p .map_async (backend_gtk3cairo_internal_check , [0 ])
1858
1867
success , msg = res .get (timeout = 5 )[0 ]
1868
+ except Queue .Empty :
1869
+ p .terminate ()
1870
+ # No result returned. Probaly hanging, terminate the process.
1871
+ success = False
1872
+ raise
1859
1873
except :
1874
+ p .close ()
1860
1875
success = False
1861
1876
raise
1862
- finally :
1877
+ else :
1863
1878
p .close ()
1879
+ finally :
1864
1880
p .join ()
1881
+
1865
1882
if success :
1866
1883
BackendAgg .force = True
1867
-
1868
1884
return msg
1869
1885
else :
1870
1886
raise CheckFailed (msg )
@@ -1997,12 +2013,19 @@ def check_requirements(self):
1997
2013
try :
1998
2014
res = p .map_async (self .callback , [self ])
1999
2015
msg = res .get (timeout = 5 )[0 ]
2016
+ except Queue .Empty :
2017
+ p .terminate ()
2018
+ # No result returned. Probaly hanging, terminate the process.
2019
+ raise
2000
2020
except :
2001
- # If we hit an error on multiprocessing raise it
2021
+ # Some other error.
2022
+ p .close ()
2002
2023
raise
2024
+ else :
2025
+ # Clean exit
2026
+ p .close ()
2003
2027
finally :
2004
2028
# Tidy up multiprocessing
2005
- p .close ()
2006
2029
p .join ()
2007
2030
2008
2031
return msg
You can’t perform that action at this time.
0 commit comments