you are right. so here is the new patch. this time using sigaction. Armin
On Fri, 2003-09-26 at 00:00, Hubert Figuiere wrote: > According to Armin Bauer <[EMAIL PROTECTED]>: > > > > +void sig_child(int crap) > > +{ > > + waitpid(-1, NULL, WNOHANG); > > + signal(SIGCHLD,sig_child); > > +} > > > > int main (int argc, char **argv) > > { > > @@ -1988,6 +1995,7 @@ > > textdomain (PACKAGE); > > #endif > > > > + signal(SIGCHLD,sig_child); > > Why not using sigaction(2) ? It is better and don't need to rearm... > Even signal(2) manpage recommends sigaction(2). > > Hub
--- multisync/src/syncengine.c 2003-09-25 20:58:39.000000000 +0200 +++ projects/multisync/src/syncengine.c 2003-09-26 12:57:02.000000000 +0200 @@ -1,4 +1,4 @@ -/* +/* MultiSync - A PIM data synchronization program Copyright (C) 2002-2003 Bo Lincoln <[EMAIL PROTECTED]> @@ -38,6 +38,8 @@ #include <stdlib.h> #include <glib.h> #include <time.h> +#include <signal.h> +#include <sys/wait.h> #include "syncengine.h" #include <sys/types.h> #include <sys/stat.h> @@ -1963,6 +1965,10 @@ (objtype==SYNC_OBJECT_TYPE_PHONEBOOK?"Contact":"Unknown"))); } +void sig_child(void) +{ + waitpid(-1, NULL, WNOHANG); +} int main (int argc, char **argv) { @@ -1982,12 +1988,17 @@ 1, "Use a non-default data direcory.", NULL }, NULL }; - + struct sigaction sg_action; + #ifdef ENABLE_NLS bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); textdomain (PACKAGE); #endif + sg_action.sa_handler = (void *)sig_child; + sg_action.sa_flags = SA_NOCLDSTOP; + + sigaction(SIGCHLD, &sg_action, NULL); gnome_program_init (PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv,