From owner-svn-soc-all@FreeBSD.ORG Mon Aug 6 13:10:27 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B94EF106564A for ; Mon, 6 Aug 2012 13:10:25 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 06 Aug 2012 13:10:25 +0000 Date: Mon, 06 Aug 2012 13:10:25 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120806131025.B94EF106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r240135 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Aug 2012 13:10:28 -0000 Author: rudot Date: Mon Aug 6 13:10:25 2012 New Revision: 240135 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=240135 Log: delivery of signals wakes racct-sleeping thread Modified: soc2012/rudot/sys/kern/subr_trap.c Modified: soc2012/rudot/sys/kern/subr_trap.c ============================================================================== --- soc2012/rudot/sys/kern/subr_trap.c Mon Aug 6 13:08:19 2012 (r240134) +++ soc2012/rudot/sys/kern/subr_trap.c Mon Aug 6 13:10:25 2012 (r240135) @@ -103,6 +103,9 @@ userret(struct thread *td, struct trapframe *frame) { struct proc *p = td->td_proc; +#ifdef RACCT + int sig; +#endif CTR3(KTR_SYSC, "userret: thread %p (pid %d, %s)", td, p->p_pid, td->td_name); @@ -154,7 +157,10 @@ #ifdef RACCT mtx_lock(&racct_lock); while (racct_proc_disabled(p)) { - msleep(p->p_racct, &racct_lock, 0, "racct", 0); + sig = msleep(p->p_racct, &racct_lock, PCATCH | PBDRY, "racct", + hz); + if ((sig == EINTR) || (sig == ERESTART)) + break; } mtx_unlock(&racct_lock); #endif