ovs-benchmark: improve 'rate' command piped output support.
authorAndy Zhou <azhou@nicira.com>
Mon, 29 Apr 2013 21:42:56 +0000 (14:42 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 2 May 2013 22:47:55 +0000 (15:47 -0700)
Add fflush() to the 'rate' command of 'ovs-benchmark'.  On a tty console
the output is line-buffered. However, piped output by default has a
deeper (usually 4KB) buffer, the output won't appear to the other end of
the pipe until this buffer is full.

This patch makes the piped output of the 'rate' command's consistent
with tty console output.

Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
utilities/ovs-benchmark.c

index 162f7cf..8bea9f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2011, 2012 Nicira, Inc.
+ * Copyright (c) 2010, 2011, 2012, 2013 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -472,6 +472,7 @@ cmd_rate(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
             printf("%.3f s elapsed, %u OK, %u failed, avg %.1f/s\n",
                    elapsed / 1000.0, completed - failures, failures,
                    completed / (elapsed / 1000.0));
+            fflush(stdout);
             prev = now;
 
             if (timeout && elapsed > timeout * 1000LL) {