summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-04 04:22:04 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-04 04:22:04 +0000
commitc5bf9ceef62a5b645f5ec014004f2c716d138a3e (patch)
tree3b9d56591e73a9ef1249baecec40ead117734964 /vm.c
parent83e28e5176600760a92b724a405420a79e08b6b4 (diff)
* vm_core.h (struct rb_vm_struct): replaced signal staff with trap
staff. * signal.c (signal_buff): per process resouce now. * signal.c (trap_list): moved to VM. * signal.c (rb_get_next_signal): reverted. * signal.c (rb_trap_exit): trap_pending_list was no longer used. * thread.c (timer_thread_function): delivers buffered per-process signals to each VMs. * vm.c (rb_vm_mark): marks trap_list. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 730d89c6b8..b1f22e7d84 100644
--- a/vm.c
+++ b/vm.c
@@ -1406,6 +1406,11 @@ rb_vm_mark(void *ptr)
}
mark_event_hooks(vm->event_hooks);
+
+ for (i = 0; i < RUBY_NSIG; i++) {
+ if (vm->trap_list[i].cmd)
+ rb_gc_mark(vm->trap_list[i].cmd);
+ }
}
RUBY_MARK_LEAVE("vm");