Use _exit() instead of exit() so our writer process doesn't flush out
authorKen Hornstein <kenh@pobox.com>
Tue, 20 Mar 2012 23:52:29 +0000 (19:52 -0400)
committerKen Hornstein <kenh@pobox.com>
Wed, 21 Mar 2012 00:16:06 +0000 (20:16 -0400)
the stdio buffers on exit.

uip/mhlsbr.c

index ae1fb5d..0798746 100644 (file)
@@ -2119,7 +2119,11 @@ filterbody (struct mcomp *c1, char *buf, int bufsz, int state, FILE *fp)
         */
 
        close(fdinput[1]);
-       exit(0);
+       /*
+        * Make sure we call _exit(), otherwise we may flush out the stdio
+        * buffers that we have duplicated from the parent.
+        */
+       _exit(0);
        break;
     case -1:
        adios(NULL, "Unable to fork for filter writer process");