Subject: SIGCHLD
From: [email-masked] (Basim Kadhim)

18 Mar 1997 14:15:48 -0800
Approved: [email-masked]
Distribution: cygnus
Message-ID: <[email-masked]>
Reply-To: [email-masked]
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Original-To: [email-masked]
Original-Sender: [email-masked]

In porting a new piece of software to GNU-Win32, I've run into what appears
to be problems with signal handling.  The program does a fork and exec
and then goes off into a loop elsewhere doing work until it detects SIGCHLD.
(I should probably mention that the loop also blocks and unblocks signals
along the way).  It appears that the process never gets the SIGCHLD
signal.  Is SIGCHLD properly supported in b17.1?

In addition, the fork and exec appear to work fine when I run under gdb
(the forked process generates the files I expect), but doesn't appear to
generate anything when I'm not running under the debugger.

The last point is a minor one.  sigaddset is defined as a macro in newlib
that just or's the right value into the set.  The problem is that it
doesn't return 0 as it should upon successful completion.  It should
probably read:

#define sigaddset(what,sig) ((*(what) |= (1<<(sig))), 0)

instead of:

#define sigaddset(what,sig) (*(what) |= (1<<(sig)))

Any clues would be much appreciated.

Basim
-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".