@@ -465,6 +465,7 @@ JL_DLLEXPORT jl_task_t *jl_task_get_next(jl_value_t *trypoptask, jl_value_t *q,
465465 if (set_not_sleeping (ptls )) {
466466 JL_PROBE_RT_SLEEP_CHECK_TASK_WAKE (ptls );
467467 }
468+ jl_eh_restore_state_noexcept (__eh_ct , & __eh ); // leave
468469 if (task )
469470 return task ;
470471 continue ;
@@ -473,6 +474,7 @@ JL_DLLEXPORT jl_task_t *jl_task_get_next(jl_value_t *trypoptask, jl_value_t *q,
473474 if (set_not_sleeping (ptls )) {
474475 JL_PROBE_RT_SLEEP_CHECK_TASK_WAKE (ptls );
475476 }
477+ jl_eh_restore_state_noexcept (__eh_ct , & __eh ); // leave
476478 return task ;
477479 }
478480
@@ -533,6 +535,7 @@ JL_DLLEXPORT jl_task_t *jl_task_get_next(jl_value_t *trypoptask, jl_value_t *q,
533535 JL_PROBE_RT_SLEEP_CHECK_UV_WAKE (ptls );
534536 }
535537 start_cycles = 0 ;
538+ jl_eh_restore_state_noexcept (__eh_ct , & __eh ); // leave
536539 continue ;
537540 }
538541 if (!enter_eventloop && !jl_atomic_load_relaxed (& _threadedregion ) && ptls -> tid == jl_atomic_load_relaxed (& io_loop_tid )) {
@@ -542,6 +545,7 @@ JL_DLLEXPORT jl_task_t *jl_task_get_next(jl_value_t *trypoptask, jl_value_t *q,
542545 JL_PROBE_RT_SLEEP_CHECK_UV_WAKE (ptls );
543546 }
544547 start_cycles = 0 ;
548+ jl_eh_restore_state_noexcept (__eh_ct , & __eh ); // leave
545549 continue ;
546550 }
547551 }
@@ -596,6 +600,7 @@ JL_DLLEXPORT jl_task_t *jl_task_get_next(jl_value_t *trypoptask, jl_value_t *q,
596600 if (task ) {
597601 assert (task == wait_empty );
598602 wait_empty = NULL ;
603+ jl_eh_restore_state_noexcept (__eh_ct , & __eh ); // leave
599604 return task ;
600605 }
601606 }
0 commit comments