File tree Expand file tree Collapse file tree 1 file changed +12
-10
lines changed Expand file tree Collapse file tree 1 file changed +12
-10
lines changed Original file line number Diff line number Diff line change @@ -1018,21 +1018,23 @@ namespace ccf
1018
1018
1019
1019
process_launcher.stop ();
1020
1020
1021
- // Continue running the loop long enough for the on_close
1022
- // callbacks to be despatched, so as to avoid memory being
1023
- // leaked by handles. Capped out of abundance of caution.
1024
- constexpr size_t max_iterations = 1000 ;
1025
- size_t close_iterations = max_iterations;
1026
- while ((uv_loop_alive (uv_default_loop ()) != 0 ) && (close_iterations > 0 ))
1021
+ constexpr size_t max_close_iterations = 1000 ;
1022
+ size_t close_iterations = max_close_iterations;
1023
+ int loop_close_rc = 0 ;
1024
+ while (close_iterations > 0 )
1027
1025
{
1026
+ loop_close_rc = uv_loop_close (uv_default_loop ());
1027
+ if (loop_close_rc != UV_EBUSY)
1028
+ {
1029
+ break ;
1030
+ }
1028
1031
uv_run (uv_default_loop (), UV_RUN_NOWAIT);
1029
- close_iterations--;
1032
+ --close_iterations;
1033
+ std::this_thread::sleep_for (10ms);
1030
1034
}
1031
1035
LOG_INFO_FMT (
1032
1036
" Ran an extra {} cleanup iteration(s)" ,
1033
- max_iterations - close_iterations);
1034
-
1035
- auto loop_close_rc = uv_loop_close (uv_default_loop ());
1037
+ max_close_iterations - close_iterations);
1036
1038
if (loop_close_rc != 0 )
1037
1039
{
1038
1040
LOG_FAIL_FMT (
You can’t perform that action at this time.
0 commit comments