diff options
author | Tom Lane | 2016-05-29 17:00:09 +0000 |
---|---|---|
committer | Tom Lane | 2016-05-29 17:00:09 +0000 |
commit | 210981a4a9fdd19cb299f248a7ecc25db9bf7d9d (patch) | |
tree | d35ce21088d5640f072cac8d54a05b5379b4f38e /src | |
parent | 6b3094c26f9ec8688d802e71562e9be714cfe6ac (diff) |
Remove pg_dump/parallel.c's useless "aborting" flag.
This was effectively dead code, since the places that tested it could not
be reached after we entered the on-exit-cleanup routine that would set it.
It seems to have been a leftover from a design in which error abort would
try to send fresh commands to the workers --- a design which could never
have worked reliably, of course. Since the flag is not cross-platform, it
complicates reasoning about the code's behavior, which we could do without.
Although this is effectively just cosmetic, back-patch anyway, because
there are some actual bugs in the vicinity of this behavior.
Discussion: <15583.1464462418@sss.pgh.pa.us>
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_dump/parallel.c | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/src/bin/pg_dump/parallel.c b/src/bin/pg_dump/parallel.c index 56a74cbac42..e9e86988d28 100644 --- a/src/bin/pg_dump/parallel.c +++ b/src/bin/pg_dump/parallel.c @@ -95,11 +95,7 @@ static int piperead(int s, char *buf, int len); #else /* !WIN32 */ -/* - * Variables for handling signals. aborting is only ever used in the master, - * the workers just need wantAbort. - */ -static bool aborting = false; +/* Signal handler flag */ static volatile sig_atomic_t wantAbort = 0; /* Non-Windows implementation of pipe access */ @@ -301,14 +297,6 @@ archive_close_connection(int code, void *arg) if (si->AHX) DisconnectDatabase(si->AHX); -#ifndef WIN32 - - /* - * Setting aborting to true shuts off error/warning messages that - * are no longer useful once we start killing workers. - */ - aborting = true; -#endif ShutdownWorkersHard(si->pstate); } else @@ -1178,11 +1166,9 @@ select_loop(int maxFd, fd_set *workerset) /* * If we Ctrl-C the master process, it's likely that we interrupt * select() here. The signal handler will set wantAbort == true and - * the shutdown journey starts from here. Note that we'll come back - * here later when we tell all workers to terminate and read their - * responses. But then we have aborting set to true. + * the shutdown journey starts from here. */ - if (wantAbort && !aborting) + if (wantAbort) exit_horribly(modulename, "terminated by user\n"); if (i < 0 && errno == EINTR) @@ -1279,17 +1265,9 @@ sendMessageToWorker(ParallelState *pstate, int worker, const char *str) if (pipewrite(pstate->parallelSlot[worker].pipeWrite, str, len) != len) { - /* - * If we're already aborting anyway, don't care if we succeed or not. - * The child might have gone already. (XXX but if we're aborting - * already, why are we here at all?) - */ -#ifndef WIN32 - if (!aborting) -#endif - exit_horribly(modulename, - "could not write to the communication channel: %s\n", - strerror(errno)); + exit_horribly(modulename, + "could not write to the communication channel: %s\n", + strerror(errno)); } } |