From owner-freebsd-hackers@FreeBSD.ORG Fri May 30 22:01:24 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B445F37B401 for ; Fri, 30 May 2003 22:01:24 -0700 (PDT) Received: from frenchfries.net (lsanca1-ar14-4-60-145-009.lsanca1.dsl-verizon.net [4.60.145.9]) by mx1.FreeBSD.org (Postfix) with ESMTP id BC09243FA3 for ; Fri, 30 May 2003 22:01:23 -0700 (PDT) (envelope-from pherman@frenchfries.net) Received: by frenchfries.net (Postfix, from userid 1000) id 75C6C4FE8; Fri, 30 May 2003 22:00:18 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by frenchfries.net (Postfix) with ESMTP id 735704FE7 for ; Fri, 30 May 2003 22:00:18 -0700 (PDT) Date: Fri, 30 May 2003 22:00:18 -0700 (PDT) From: Paul Herman X-X-Sender: pherman@mammoth.eat.frenchfries.net To: hackers@freebsd.org Message-ID: <20030530213533.E229-100000@mammoth.eat.frenchfries.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: Proper behaviour for wait()? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 May 2003 05:01:25 -0000 Just curious, anyone know what the "proper" behavior for wait() is when SIGCHLD is ignored? Is it simply undefined? Don't see anything mentioned in the wait(2) manpage one way or tother, and other OSes don't seem to agree much. -Paul. bash$ cat wait.c #include #include #include #include #include int main() { int status; pid_t pid = fork(); if (!pid) { sleep(1); _exit(0); } signal(SIGCHLD, SIG_IGN); printf("waitpid() = %d\n", waitpid(pid, &status, 0)); signal(SIGCHLD, SIG_DFL); return 0; } bash$ cc wait.c [FreeBSD 4.8] bash$ ./a.out waitpid() = 7553 bash$ [Linux 2.4.21] bash$ ./a.out waitpid() = 24536 bash$ [Darwin 6.6] bash$ ./a.out waitpid() = -1 bash$ [Solaris 8] bash$ ./a.out waitpid() = -1 bash$ [OpenBSD 3.3] bash$ ./a.out ...just hangs...