Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!hpda!hpihoah!hpirs!hpisoa1!davel
From: davel@hpisoa1.HP.COM (Dave Lennert)
Newsgroups: comp.unix.wizards
Subject: Re: No more signals
Message-ID: <2200017@hpisoa1.HP.COM>
Date: Thu, 23-Jul-87 17:11:13 EDT
Article-I.D.: hpisoa1.2200017
Posted: Thu Jul 23 17:11:13 1987
Date-Received: Sat, 25-Jul-87 15:16:59 EDT
References: <967@wjvax.wjvax.UUCP>
Organization: Hewlett Packard, Cupertino
Lines: 19

> However, Berekely signals are not queued (unlike, as I understand
> it, SIGCLD in SYSV).  This is why the user often needs a secondary
> mechanism (such as wait3(2) for SIGCHLD or select(2) for SIGIO)
> to process a signal.

Technically, SIGCLD is not queued in SYSV.

SIGCLD is resent by the kernel whenever a signal handler for SIGCLD
is reinstalled and there are unwaited for zombie children.  This
is different than queueing all instances of SIGCLD being sent.

For example, if a process sends SIGCLD via kill(2), it is not "queued".
Also, if several children die, each generating SIGCLD, and the
parent SIGCLD handler waits for all of them on its first entry
(processing the "first" SIGCLD) there will not be a reentry when
the handler is reinstalled since there are no longer any waiting
zombies.

-Dave Lennert   HP   ihnp4!hplabs!hpda!davel