Initialize interrupt queue before signal handlers (#9196)
This commit is contained in:
parent
1e5c8afb15
commit
9f0065a077
2
inits.c
2
inits.c
@ -51,7 +51,6 @@ rb_call_inits(void)
|
|||||||
CALL(Dir);
|
CALL(Dir);
|
||||||
CALL(Time);
|
CALL(Time);
|
||||||
CALL(Random);
|
CALL(Random);
|
||||||
CALL(signal);
|
|
||||||
CALL(load);
|
CALL(load);
|
||||||
CALL(Proc);
|
CALL(Proc);
|
||||||
CALL(Binding);
|
CALL(Binding);
|
||||||
@ -63,6 +62,7 @@ rb_call_inits(void)
|
|||||||
CALL(VM);
|
CALL(VM);
|
||||||
CALL(ISeq);
|
CALL(ISeq);
|
||||||
CALL(Thread);
|
CALL(Thread);
|
||||||
|
CALL(signal);
|
||||||
CALL(Fiber_Scheduler);
|
CALL(Fiber_Scheduler);
|
||||||
CALL(process);
|
CALL(process);
|
||||||
CALL(Cont);
|
CALL(Cont);
|
||||||
|
3
signal.c
3
signal.c
@ -1488,6 +1488,9 @@ Init_signal(void)
|
|||||||
rb_alias(rb_eSignal, rb_intern_const("signm"), rb_intern_const("message"));
|
rb_alias(rb_eSignal, rb_intern_const("signm"), rb_intern_const("message"));
|
||||||
rb_define_method(rb_eInterrupt, "initialize", interrupt_init, -1);
|
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. */
|
/* At this time, there is no subthread. Then sigmask guarantee atomics. */
|
||||||
rb_disable_interrupt();
|
rb_disable_interrupt();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user