Skip to content

Commit 2e2d508

Browse files
committed
suggestion from jameson's review: move wait for GC to before jl_exit_thread0 call
1 parent d957b1b commit 2e2d508

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/signals-unix.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -1033,10 +1033,6 @@ static void *signal_listener(void *arg)
10331033
}
10341034
#endif
10351035
if (doexit) {
1036-
// Let's forbid threads from running GC while we're trying to exit,
1037-
// also let's make sure we're not in the middle of GC.
1038-
jl_atomic_fetch_add(&jl_gc_disable_counter, 1);
1039-
jl_safepoint_wait_gc(NULL);
10401036
// The exit can get stuck if it happens at an unfortunate spot in thread 0
10411037
// (unavoidable due to its async nature).
10421038
// Try much harder to exit next time, if we get multiple exit requests.
@@ -1093,6 +1089,10 @@ static void *signal_listener(void *arg)
10931089
//#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L && !HAVE_KEVENT
10941090
// si_code = info.si_code;
10951091
//#endif
1092+
// Let's forbid threads from running GC while we're trying to exit,
1093+
// also let's make sure we're not in the middle of GC.
1094+
jl_atomic_fetch_add(&jl_gc_disable_counter, 1);
1095+
jl_safepoint_wait_gc(NULL);
10961096
jl_exit_thread0(sig, signal_bt_data, signal_bt_size);
10971097
}
10981098
else if (critical) {

0 commit comments

Comments
 (0)