diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/access/transam/xlogarchive.c | 2 | ||||
-rw-r--r-- | src/backend/postmaster/fork_process.c | 7 | ||||
-rw-r--r-- | src/backend/postmaster/shell_archive.c | 1 | ||||
-rw-r--r-- | src/backend/storage/file/fd.c | 3 | ||||
-rw-r--r-- | src/backend/utils/error/elog.c | 6 |
5 files changed, 7 insertions, 12 deletions
diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c index 4101a30e374..e2b7176f2f6 100644 --- a/src/backend/access/transam/xlogarchive.c +++ b/src/backend/access/transam/xlogarchive.c @@ -169,6 +169,7 @@ RestoreArchivedFile(char *path, const char *xlogfname, /* * Copy xlog from archival storage to XLOGDIR */ + fflush(NULL); pgstat_report_wait_start(WAIT_EVENT_RESTORE_COMMAND); rc = system(xlogRestoreCmd); pgstat_report_wait_end(); @@ -358,6 +359,7 @@ ExecuteRecoveryCommand(const char *command, const char *commandName, /* * execute the constructed command */ + fflush(NULL); pgstat_report_wait_start(wait_event_info); rc = system(xlogRecoveryCmd); pgstat_report_wait_end(); diff --git a/src/backend/postmaster/fork_process.c b/src/backend/postmaster/fork_process.c index c75be03d2c3..ec677614870 100644 --- a/src/backend/postmaster/fork_process.c +++ b/src/backend/postmaster/fork_process.c @@ -37,13 +37,8 @@ fork_process(void) /* * Flush stdio channels just before fork, to avoid double-output problems. - * Ideally we'd use fflush(NULL) here, but there are still a few non-ANSI - * stdio libraries out there (like SunOS 4.1.x) that coredump if we do. - * Presently stdout and stderr are the only stdio output channels used by - * the postmaster, so fflush'ing them should be sufficient. */ - fflush(stdout); - fflush(stderr); + fflush(NULL); #ifdef LINUX_PROFILE diff --git a/src/backend/postmaster/shell_archive.c b/src/backend/postmaster/shell_archive.c index 19e240c2053..8a54d02e7bb 100644 --- a/src/backend/postmaster/shell_archive.c +++ b/src/backend/postmaster/shell_archive.c @@ -99,6 +99,7 @@ shell_archive_file(const char *file, const char *path) (errmsg_internal("executing archive command \"%s\"", xlogarchcmd))); + fflush(NULL); pgstat_report_wait_start(WAIT_EVENT_ARCHIVE_COMMAND); rc = system(xlogarchcmd); pgstat_report_wait_end(); diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index e3b19ca1ed4..1aaab6c5542 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -2503,8 +2503,7 @@ OpenPipeStream(const char *command, const char *mode) ReleaseLruFiles(); TryAgain: - fflush(stdout); - fflush(stderr); + fflush(NULL); pqsignal(SIGPIPE, SIG_DFL); errno = 0; file = popen(command, mode); diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 95f32de4e29..cb3c2898898 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -643,8 +643,7 @@ errfinish(const char *filename, int lineno, const char *funcname) * Any other code you might be tempted to add here should probably be * in an on_proc_exit or on_shmem_exit callback instead. */ - fflush(stdout); - fflush(stderr); + fflush(NULL); /* * Let the cumulative stats system know. Only mark the session as @@ -670,8 +669,7 @@ errfinish(const char *filename, int lineno, const char *funcname) * XXX: what if we are *in* the postmaster? abort() won't kill our * children... */ - fflush(stdout); - fflush(stderr); + fflush(NULL); abort(); } |