From: wessels <> Date: Tue, 16 Jul 1996 07:51:14 +0000 (+0000) Subject: abort if all the redirectors close X-Git-Tag: SQUID_3_0_PRE1~6049 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=08086a53bcf91a4529ad9b88677c2aa5a7105d22;p=thirdparty%2Fsquid.git abort if all the redirectors close --- diff --git a/src/redirect.cc b/src/redirect.cc index bb6c1e37b2..de7014de58 100644 --- a/src/redirect.cc +++ b/src/redirect.cc @@ -1,5 +1,5 @@ /* - * $Id: redirect.cc,v 1.3 1996/07/11 17:42:50 wessels Exp $ + * $Id: redirect.cc,v 1.4 1996/07/16 01:51:14 wessels Exp $ * * DEBUG: section 29 Redirector * AUTHOR: Duane Wessels @@ -80,6 +80,7 @@ static void redirectDispatch _PARAMS((redirector_t *, redirectStateData *)); static redirector_t **redirect_child_table = NULL; static int NRedirectors = 0; +static int NRedirectorsOpen = 0; static struct redirectQueueData *redirectQueueHead = NULL; static struct redirectQueueData **redirectQueueTailP = &redirectQueueHead; @@ -171,6 +172,8 @@ static int redirectHandleRead(fd, redirector) fd, redirector->index + 1); redirector->flags = 0; comm_close(fd); + if (--NRedirectorsOpen == 0) + fatal_dump("All redirectors have exited!"); return 0; } redirector->offset += len; @@ -318,7 +321,7 @@ void redirectOpenServers() safe_free(redirect_child_table[k]); safe_free(redirect_child_table); } - NRedirectors = getRedirectChildren(); + NRedirectors = NRedirectorsOpen = getRedirectChildren(); redirect_child_table = xcalloc(NRedirectors, sizeof(redirector_t *)); debug(29, 1, "redirectOpenServers: Starting %d '%s' processes\n", NRedirectors, prg);