Bug #2616 ยป th_sigill.patch
| signal.c (working copy) | ||
|---|---|---|
|
}
|
||
|
}
|
||
|
void
|
||
|
rb_signal_redefine_for_thread(void)
|
||
|
{
|
||
|
static const int redefine_list[] = {SIGILL};
|
||
|
rb_vm_t *vm = GET_VM();
|
||
|
int i;
|
||
|
for (i = 0; i < sizeof(redefine_list) / sizeof(int); i++) {
|
||
|
int sig = redefine_list[i];
|
||
|
if (vm->trap_list[sig].cmd) {
|
||
|
ruby_signal(sig, sighandler);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#ifdef RUBY_DEBUG_ENV
|
||
|
int ruby_enable_coredump = 0;
|
||
| thread_win32.c (working copy) | ||
|---|---|---|
|
volatile HANDLE thread_id = th->thread_id;
|
||
|
native_thread_init_stack(th);
|
||
|
rb_signal_redefine_for_thread();
|
||
|
th->native_thread_data.interrupt_event = CreateEvent(0, TRUE, FALSE, 0);
|
||
|
/* run */
|
||