/[Apache-SVN]/spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm
ViewVC logotype

Diff of /spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm	2005/06/21 05:29:00	191623
+++ spamassassin/trunk/lib/Mail/SpamAssassin/SpamdForkScaling.pm	2005/06/21 05:39:14	191624
@@ -99,11 +99,19 @@ sub add_child {
   $self->set_child_state ($pid, PFSTATE_STARTING);
 }
 
+# this is called by the SIGCHLD handler in spamd.  The idea is that
+# main_ping_kids etc. can mark a child as probably dead ("K" state), but until
+# SIGCHLD is received, the process is still around (in some form), so it
+# shouldn't be removed from the list until it's confirmed dead.
+#
 sub child_exited {
   my ($self, $pid) = @_;
 
   delete $self->{kids}->{$pid};
 
+  # remove the child from the backchannel list, too
+  $self->{backchannel}->delete_socket_for_child($pid);
+
   # ensure we recompute, so that we don't try to tell that child to
   # accept a request, only to find that it's died in the meantime.
   $self->compute_lowest_child_pid();

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26