mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
Fixes:
postgres backend processes end up as so called zombies. It seems that only Linux a.out (libc.4.6.27) systems are affected. By: Wolfgang Roth <roth@statistik.uni-mannheim.de>
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.44 1997/03/12 21:18:38 scrappy Exp $
|
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.45 1997/04/24 20:27:46 scrappy Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
*
|
*
|
||||||
@@ -818,11 +818,15 @@ reaper(SIGNAL_ARGS)
|
|||||||
fprintf(stderr, "%s: reaping dead processes...\n",
|
fprintf(stderr, "%s: reaping dead processes...\n",
|
||||||
progname);
|
progname);
|
||||||
#ifdef HAVE_WAITPID
|
#ifdef HAVE_WAITPID
|
||||||
while((pid = waitpid(-1, &status, WNOHANG)) > 0)
|
while((pid = waitpid(-1, &status, WNOHANG)) > 0) {
|
||||||
CleanupProc(pid, status);
|
CleanupProc(pid, status);
|
||||||
|
pqsignal(SIGCHLD, reaper);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
while((pid = wait3(&statusp, WNOHANG, NULL)) > 0)
|
while((pid = wait3(&statusp, WNOHANG, NULL)) > 0) {
|
||||||
CleanupProc(pid, statusp.w_status);
|
CleanupProc(pid, statusp.w_status);
|
||||||
|
pqsignal(SIGCHLD, reaper);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user