Make stdout unbuffered
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 19 Dec 2013 20:26:27 +0000 (17:26 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 19 Dec 2013 20:26:27 +0000 (17:26 -0300)
This ensures that all stdout output is flushed immediately, to match
stderr.  This eliminates the need for fflush(stdout) calls sprinkled all
over the place.

Per Daniel Wood in message 519A79C6.90308@salesforce.com

src/test/isolation/isolationtester.c

index 3ab2971c22629d7881cb85a9b0f9747af34731b4..8dc0f66637b42d2f7921eb3a7dbb530d958300bb 100644 (file)
@@ -70,8 +70,6 @@ exit_nicely(void)
 
    for (i = 0; i < nconns; i++)
        PQfinish(conns[i]);
-   fflush(stderr);
-   fflush(stdout);
    exit(1);
 }
 
@@ -101,6 +99,9 @@ main(int argc, char **argv)
        }
    }
 
+   /* make stdout unbuffered to match stderr */
+   setbuf(stdout, NULL);
+
    /*
     * If the user supplies a non-option parameter on the command line, use it
     * as the conninfo string; otherwise default to setting dbname=postgres
@@ -288,8 +289,6 @@ main(int argc, char **argv)
    /* Clean up and exit */
    for (i = 0; i < nconns; i++)
        PQfinish(conns[i]);
-   fflush(stderr);
-   fflush(stdout);
    return 0;
 }
 
@@ -574,9 +573,7 @@ run_permutation(TestSpec * testspec, int nsteps, Step ** steps)
             * but it can only be unblocked by running steps from other
             * sessions.
             */
-           fflush(stdout);
            fprintf(stderr, "invalid permutation detected\n");
-           fflush(stderr);
 
            /* Cancel the waiting statement from this session. */
            cancel = PQgetCancel(conn);
@@ -664,7 +661,6 @@ teardown:
                        testspec->sessions[i]->name,
                        PQerrorMessage(conns[i + 1]));
                /* don't exit on teardown failure */
-               fflush(stderr);
            }
            PQclear(res);
        }
@@ -683,7 +679,6 @@ teardown:
            fprintf(stderr, "teardown failed: %s",
                    PQerrorMessage(conns[0]));
            /* don't exit on teardown failure */
-           fflush(stderr);
        }
        PQclear(res);
    }