Initialize interrupt queue before signal handlers (#9196)

This commit is contained in:
Takashi Kokubun 2023-12-11 21:12:08 -08:00 коммит произвёл GitHub
Родитель 1e5c8afb15
Коммит 9f0065a077
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -51,7 +51,6 @@ rb_call_inits(void)
CALL(Dir);
CALL(Time);
CALL(Random);
CALL(signal);
CALL(load);
CALL(Proc);
CALL(Binding);
@ -63,6 +62,7 @@ rb_call_inits(void)
CALL(VM);
CALL(ISeq);
CALL(Thread);
CALL(signal);
CALL(Fiber_Scheduler);
CALL(process);
CALL(Cont);

Просмотреть файл

@ -1488,6 +1488,9 @@ Init_signal(void)
rb_alias(rb_eSignal, rb_intern_const("signm"), rb_intern_const("message"));
rb_define_method(rb_eInterrupt, "initialize", interrupt_init, -1);
// It should be ready to call rb_signal_exec()
VM_ASSERT(GET_THREAD()->pending_interrupt_queue);
/* At this time, there is no subthread. Then sigmask guarantee atomics. */
rb_disable_interrupt();