Add fflush() before popen() calls; avoids any possible problem with
double or out-of-sequence output with child process.
This commit is contained in:
parent
0104fc11b9
commit
81e51ddc14
@ -42,7 +42,7 @@
|
|||||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Header: /cvsroot/pgsql/src/bin/initdb/initdb.c,v 1.8 2003/11/14 17:19:35 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/bin/initdb/initdb.c,v 1.9 2003/11/14 17:30:41 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -204,7 +204,9 @@ static void *xmalloc(size_t);
|
|||||||
|
|
||||||
#define PG_CMD_OPEN \
|
#define PG_CMD_OPEN \
|
||||||
do { \
|
do { \
|
||||||
pg = popen(cmd,PG_BINARY_W); \
|
fflush(stdout); \
|
||||||
|
fflush(stderr); \
|
||||||
|
pg = popen(cmd, PG_BINARY_W); \
|
||||||
if (pg == NULL) \
|
if (pg == NULL) \
|
||||||
exit_nicely(); \
|
exit_nicely(); \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -862,6 +864,10 @@ find_postgres(char *path)
|
|||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "\"%s/postgres\" -V 2>%s", path, DEVNULL);
|
snprintf(cmd, sizeof(cmd), "\"%s/postgres\" -V 2>%s", path, DEVNULL);
|
||||||
|
|
||||||
|
/* flush output buffers in case popen does not... */
|
||||||
|
fflush(stdout);
|
||||||
|
fflush(stderr);
|
||||||
|
|
||||||
if ((pgver = popen(cmd, "r")) == NULL)
|
if ((pgver = popen(cmd, "r")) == NULL)
|
||||||
return FIND_EXEC_ERR;
|
return FIND_EXEC_ERR;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user