From owner-freebsd-standards@FreeBSD.ORG Fri Jun 20 07:21:44 2003 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A4E2B37B401; Fri, 20 Jun 2003 07:21:44 -0700 (PDT) Received: from atlas.informatik.rwth-aachen.de (atlas.Informatik.RWTH-Aachen.DE [137.226.194.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08A8B43FA3; Fri, 20 Jun 2003 07:21:43 -0700 (PDT) (envelope-from stolz@i2.informatik.rwth-aachen.de) Received: from menelaos.informatik.rwth-aachen.de (menelaos.Informatik.RWTH-Aachen.DE [137.226.194.73]) 8.11.1-0.5) with ESMTP id h5KELgK20857; Fri, 20 Jun 2003 16:21:42 +0200 Received: (from stolz@localhost)h5KELfUh011622; Fri, 20 Jun 2003 16:21:42 +0200 (CEST) (envelope-from stolz) Date: Fri, 20 Jun 2003 16:21:42 +0200 (CEST) Message-Id: <200306201421.h5KELfUh011622@menelaos.informatik.rwth-aachen.de> To: FreeBSD-gnats-submit@freebsd.org From: Volker Stolz X-send-pr-version: 3.113 X-GNATS-Notify: cc: standards@freebsd.org Subject: interval timers not cleared in fork() X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Volker Stolz List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 14:21:45 -0000 >Submitter-Id: current-users >Originator: Volker Stolz >Organization: Lehrstuhl für Informatik II >Confidential: no >Synopsis: interval timers not cleared in fork() >Severity: serious >Priority: low >Category: standards >Class: sw-bug >Release: FreeBSD 4.8-STABLE i386 >Environment: System: FreeBSD menelaos.informatik.rwth-aachen.de 4.8-STABLE FreeBSD 4.8-STABLE #4: Tue Apr 29 11:28:13 CEST 2003 root@menelaos.informatik.rwth-aachen.de:/usr/obj/usr/src/sys/MENELAOS i386 >Description: The FreeBSD man page says on calling fork(): "All interval timers are cleared; see setitimer(2)." SUSv2 says that on invoking fork(): - If the Timers option is supported, per-process timers created by the parent are not inherited by the child process. However, a quick test reveals that only the REAL timer is stopped, PROF and VIRTUAL keep running. >How-To-Repeat: Sample program which sets the timers, forks and checks if timers are still enabled in the child at: http://www.foldr.org/~stolz/timer.c virtual set: interval=1 500 value=1 500 REAL get: interval=0 0 value=0 0 PROF get: interval=1 500 value=1 500 VIRTUAL get: interval=1 500 value=1 500 >Fix: