Reset thread interrupt lock on fork
If a thread was holding this lock before fork, it will not exist in the child process. We should re-initialize these locks as we do with the VM locks when forking. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
This commit is contained in:
parent
be6954f5d4
commit
310c00a137
Notes:
git
2025-03-26 02:14:42 +00:00
1
thread.c
1
thread.c
@ -4756,6 +4756,7 @@ static void
|
||||
terminate_atfork_i(rb_thread_t *th, const rb_thread_t *current_th)
|
||||
{
|
||||
if (th != current_th) {
|
||||
rb_native_mutex_initialize(&th->interrupt_lock);
|
||||
rb_mutex_abandon_keeping_mutexes(th);
|
||||
rb_mutex_abandon_locking_mutex(th);
|
||||
thread_cleanup_func(th, TRUE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user