File tree Expand file tree Collapse file tree 1 file changed +31
-8
lines changed
Expand file tree Collapse file tree 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):
17881788 except :
17891789 return "unknown (can not use multiprocessing to determine)"
17901790 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
17931798 except :
1799+ p .close ()
1800+ # Some other error.
17941801 success = False
17951802 msg = "Could not determine"
1796- finally :
1803+ raise
1804+ else :
17971805 p .close ()
1806+ finally :
17981807 p .join ()
1808+
17991809 if success :
18001810 BackendAgg .force = True
1801-
18021811 return msg
18031812 else :
18041813 raise CheckFailed (msg )
@@ -1856,15 +1865,22 @@ def check_requirements(self):
18561865 try :
18571866 res = p .map_async (backend_gtk3cairo_internal_check , [0 ])
18581867 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
18591873 except :
1874+ p .close ()
18601875 success = False
18611876 raise
1862- finally :
1877+ else :
18631878 p .close ()
1879+ finally :
18641880 p .join ()
1881+
18651882 if success :
18661883 BackendAgg .force = True
1867-
18681884 return msg
18691885 else :
18701886 raise CheckFailed (msg )
@@ -1997,12 +2013,19 @@ def check_requirements(self):
19972013 try :
19982014 res = p .map_async (self .callback , [self ])
19992015 msg = res .get (timeout = 5 )[0 ]
2016+ except Queue .Empty :
2017+ p .terminate ()
2018+ # No result returned. Probaly hanging, terminate the process.
2019+ raise
20002020 except :
2001- # If we hit an error on multiprocessing raise it
2021+ # Some other error.
2022+ p .close ()
20022023 raise
2024+ else :
2025+ # Clean exit
2026+ p .close ()
20032027 finally :
20042028 # Tidy up multiprocessing
2005- p .close ()
20062029 p .join ()
20072030
20082031 return msg
You can’t perform that action at this time.
0 commit comments