summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/signal.c b/signal.c
index 728fd2d65d..34a8175a9d 100644
--- a/signal.c
+++ b/signal.c
@@ -565,15 +565,13 @@ sigpipe(int sig)
static void
signal_exec(VALUE cmd, int safe, int sig)
{
- rb_proc_t *proc;
- VALUE signum = INT2FIX(sig);
+ VALUE signumary = rb_ary_new3(1, INT2FIX(sig));
if (TYPE(cmd) == T_STRING) {
- rb_eval_cmd(cmd, rb_ary_new3(1, signum), safe);
+ rb_eval_cmd(cmd, signumary, safe);
return;
}
- GetProcPtr(cmd, proc);
- vm_invoke_proc(GET_THREAD(), proc, proc->block.self, 1, &signum, 0);
+ rb_proc_call(cmd, signumary);
}
void