summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/signal.c b/signal.c
index 77233c1852..2bb8bada28 100644
--- a/signal.c
+++ b/signal.c
@@ -391,7 +391,10 @@ rb_trap_exit()
{
#ifndef MACOS_UNUSE_SIGNAL
if (trap_list[0]) {
- rb_eval_cmd(trap_list[0], rb_ary_new3(1, INT2FIX(0)));
+ VALUE trap_exit = trap_list[0];
+
+ trap_list[0] = 0;
+ rb_eval_cmd(trap_exit, rb_ary_new3(1, INT2FIX(0)));
}
#endif
}