# HG changeset patch # User Rob Flynn # Date 1016403798 0 # Node ID a7e03c5d2205475f5bdb4147823e1bd43078ff39 # Parent c0928d7fdcf9f471b2ddf269f18215ecafd15760 [gaim-migrate @ 3090] CLeaner PID stuff. Thanks, BMIller :) committer: Tailor Script diff -r c0928d7fdcf9 -r a7e03c5d2205 src/aim.c --- a/src/aim.c Sun Mar 17 21:49:56 2002 +0000 +++ b/src/aim.c Sun Mar 17 22:23:18 2002 +0000 @@ -406,6 +406,9 @@ #endif abort(); break; + case SIGCHLD: + clean_pid(); + break; default: debug_printf("caught signal %d\n", sig); gtkspell_stop(); @@ -576,6 +579,7 @@ signal(SIGTERM, sighandler); signal(SIGQUIT, sighandler); signal(SIGPIPE, SIG_IGN); + signal(SIGCHLD, sighandler); #endif diff -r c0928d7fdcf9 -r a7e03c5d2205 src/browser.c --- a/src/browser.c Sun Mar 17 21:49:56 2002 +0000 +++ b/src/browser.c Sun Mar 17 22:23:18 2002 +0000 @@ -499,8 +499,6 @@ if (status != 6) mozilla_remote_free_lock(window); - gtk_timeout_add(1000, (GtkFunction)clean_pid, NULL); - netscape_lock = 0; g_free(msg); @@ -612,8 +610,6 @@ execvp(args[0], args); _exit(0); - } else { - gtk_timeout_add(1000, (GtkFunction)clean_pid, NULL); } } } diff -r c0928d7fdcf9 -r a7e03c5d2205 src/buddy.c --- a/src/buddy.c Sun Mar 17 21:49:56 2002 +0000 +++ b/src/buddy.c Sun Mar 17 22:23:18 2002 +0000 @@ -1551,8 +1551,6 @@ args[3] = NULL; execvp(args[0], args); _exit(0); - } else if (pid > 0) { - gtk_timeout_add(100, (GtkFunction)clean_pid, NULL); } } if (b->options & OPT_POUNCE_SOUND) { diff -r c0928d7fdcf9 -r a7e03c5d2205 src/gaim.h --- a/src/gaim.h Sun Mar 17 21:49:56 2002 +0000 +++ b/src/gaim.h Sun Mar 17 22:23:18 2002 +0000 @@ -399,7 +399,7 @@ extern char *normalize(const char *); extern char *tobase64(const char *); extern void frombase64(const char *, char **, int *); -extern gint clean_pid(gpointer); +extern void clean_pid(); extern char *date(); extern gint linkify_text(char *); extern FILE *open_log_file (char *); diff -r c0928d7fdcf9 -r a7e03c5d2205 src/sound.c --- a/src/sound.c Sun Mar 17 21:49:56 2002 +0000 +++ b/src/sound.c Sun Mar 17 22:23:18 2002 +0000 @@ -463,8 +463,6 @@ } _exit(0); - } else { - g_timeout_add(100, clean_pid, NULL); } } @@ -533,8 +531,6 @@ } _exit(0); - } else { - g_timeout_add(100, clean_pid, NULL); } } diff -r c0928d7fdcf9 -r a7e03c5d2205 src/util.c --- a/src/util.c Sun Mar 17 21:49:56 2002 +0000 +++ b/src/util.c Sun Mar 17 22:23:18 2002 +0000 @@ -613,17 +613,13 @@ } -gboolean clean_pid(gpointer dummy) +void clean_pid(void) { int status; pid_t pid; + printf ("clean_pid\n"); pid = waitpid(-1, &status, WNOHANG); - - if (pid == 0) - return TRUE; - - return FALSE; } struct aim_user *find_user(const char *name, int protocol)