SIGCHLD

Basim Kadhim kadhim@spock.cs.colorado.edu
Tue Mar 18 09:38:00 GMT 1997


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
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list