Skip to content

Commit 8dc6c95

Browse files
committed
add manual leave calls to JL_TRY
1 parent ff412d5 commit 8dc6c95

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/scheduler.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)