summaryrefslogtreecommitdiff
path: root/sys/kern/kern_sig.c
diff options
context:
space:
mode:
authorDavid Xu <davidxu@FreeBSD.org>2005-10-30 02:56:08 +0000
committerDavid Xu <davidxu@FreeBSD.org>2005-10-30 02:56:08 +0000
commit56c06c4b674b7f19af6b1aa9960966d3b82dd245 (patch)
treed48e1b85529efd639c3d3b692210e7426040330a /sys/kern/kern_sig.c
parent01790d850d01e2caa94e3c2e41d1a46d46cf3eb9 (diff)
Notes
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r--sys/kern/kern_sig.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 169e2c7a1525..d63affa1c52e 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$");
#include <sys/sysent.h>
#include <sys/syslog.h>
#include <sys/sysproto.h>
+#include <sys/timers.h>
#include <sys/unistd.h>
#include <sys/wait.h>
#include <vm/vm.h>
@@ -1252,6 +1253,8 @@ out:
ksiginfo_init(ksi);
sigqueue_get(&td->td_sigqueue, sig, ksi);
ksi->ksi_signo = sig;
+ if (ksi->ksi_code == SI_TIMER)
+ itimer_accept(p, ksi->ksi_timerid, ksi);
error = 0;
mtx_lock(&ps->ps_mtx);
action = ps->ps_sigact[_SIG_IDX(sig)];
@@ -2670,7 +2673,8 @@ postsig(sig)
ksiginfo_init(&ksi);
sigqueue_get(&td->td_sigqueue, sig, &ksi);
ksi.ksi_signo = sig;
-
+ if (ksi.ksi_code == SI_TIMER)
+ itimer_accept(p, ksi.ksi_timerid, &ksi);
action = ps->ps_sigact[_SIG_IDX(sig)];
#ifdef KTRACE
if (KTRPOINT(td, KTR_PSIG))