summaryrefslogtreecommitdiff
path: root/src/backend/postmaster/syslogger.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2014-05-15 15:58:01 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2014-05-15 15:58:01 -0400
commit9601cb7bcc8f838b14e5286073b016044604790b (patch)
treef4d5420a3dd41ed070089fa9f4b20ee63cc3d790 /src/backend/postmaster/syslogger.c
parent479a36f23479417eb50b4eac74c0c0e1ce9cd7ee (diff)
Fix unportable setvbuf() usage in initdb.
In yesterday's commit 2dc4f011fd61501cce507be78c39a2677690d44b, I tried to force buffering of stdout/stderr in initdb to be what it is by default when the program is run interactively on Unix (since that's how most manual testing is done). This tripped over the fact that Windows doesn't support _IOLBF mode. We dealt with that a long time ago in syslogger.c by falling back to unbuffered mode on Windows. Export that solution in port.h and use it in initdb. Back-patch to 8.4, like the previous commit.
Diffstat (limited to 'src/backend/postmaster/syslogger.c')
-rw-r--r--src/backend/postmaster/syslogger.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c
index 8b3e50237d7..a5fb5958ea2 100644
--- a/src/backend/postmaster/syslogger.c
+++ b/src/backend/postmaster/syslogger.c
@@ -47,17 +47,6 @@
#include "utils/timestamp.h"
/*
- * We really want line-buffered mode for logfile output, but Windows does
- * not have it, and interprets _IOLBF as _IOFBF (bozos). So use _IONBF
- * instead on Windows.
- */
-#ifdef WIN32
-#define LBF_MODE _IONBF
-#else
-#define LBF_MODE _IOLBF
-#endif
-
-/*
* We read() into a temp buffer twice as big as a chunk, so that any fragment
* left after processing can be moved down to the front and we'll still have
* room to read a full chunk.
@@ -744,7 +733,7 @@ syslogger_parseArgs(int argc, char *argv[])
if (fd != -1)
{
syslogFile = fdopen(fd, "a");
- setvbuf(syslogFile, NULL, LBF_MODE, 0);
+ setvbuf(syslogFile, NULL, PG_IOLBF, 0);
}
#else /* WIN32 */
fd = atoi(*argv++);
@@ -754,7 +743,7 @@ syslogger_parseArgs(int argc, char *argv[])
if (fd > 0)
{
syslogFile = fdopen(fd, "a");
- setvbuf(syslogFile, NULL, LBF_MODE, 0);
+ setvbuf(syslogFile, NULL, PG_IOLBF, 0);
}
}
#endif /* WIN32 */
@@ -1133,7 +1122,7 @@ logfile_open(const char *filename, const char *mode, bool allow_errors)
if (fh)
{
- setvbuf(fh, NULL, LBF_MODE, 0);
+ setvbuf(fh, NULL, PG_IOLBF, 0);
#ifdef WIN32
/* use CRLF line endings on Windows */