From owner-cvs-all@FreeBSD.ORG Sun Oct 30 02:56:08 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CBF4516A41F; Sun, 30 Oct 2005 02:56:08 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B8C243D45; Sun, 30 Oct 2005 02:56:08 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9U2u8pc090853; Sun, 30 Oct 2005 02:56:08 GMT (envelope-from davidxu@repoman.freebsd.org) Received: (from davidxu@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9U2u8QG090852; Sun, 30 Oct 2005 02:56:08 GMT (envelope-from davidxu) Message-Id: <200510300256.j9U2u8QG090852@repoman.freebsd.org> From: David Xu Date: Sun, 30 Oct 2005 02:56:08 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/sys timers.h src/sys/kern kern_sig.c kern_time.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Oct 2005 02:56:08 -0000 davidxu 2005-10-30 02:56:08 UTC FreeBSD src repository Modified files: sys/sys timers.h sys/kern kern_sig.c kern_time.c Log: Let itimer store itimerspec instead of itimerval, so I don't have to convert to or from timeval frequently. Introduce function itimer_accept() to ack a timer signal in signal acceptance code, this allows us to return more fresh overrun counter than at signal generating time. while POSIX says: "the value returned by timer_getoverrun() shall apply to the most recent expiration signal delivery or acceptance for the timer,.." I prefer returning it at acceptance time. Introduce SIGEV_THREAD_ID notification mode, it is used by thread libary to request kernel to deliver signal to a specified thread, and in turn, the thread library may use the mechanism to implement SIGEV_THREAD which is required by POSIX. Timer signal is managed by timer code, so it can not fail even if signal queue is full filled by sigqueue syscall. Revision Changes Path 1.309 +5 -1 src/sys/kern/kern_sig.c 1.121 +118 -59 src/sys/kern/kern_time.c 1.9 +2 -2 src/sys/sys/timers.h