From 08086a53bcf91a4529ad9b88677c2aa5a7105d22 Mon Sep 17 00:00:00 2001 From: wessels <> Date: Tue, 16 Jul 1996 07:51:14 +0000 Subject: [PATCH] abort if all the redirectors close --- src/redirect.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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); -- 2.47.3