Sometimes, the thread in the read function would lock the pipe so the
setlinebuf would freeze on it. Set the linebuf before we create the
thread to fix this deadlock

Signed-off-by: Yannick Brosseau <[email protected]>
---
 tests/tap.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/tests/tap.c b/tests/tap.c
index a54fd17..4bb695e 100644
--- a/tests/tap.c
+++ b/tests/tap.c
@@ -58,6 +58,9 @@ static void tap_comment_stdout(void)
                goto close_pipe;
        }
 
+       /* Set it before we create the reading thread */
+       setlinebuf(pipe_r_file);
+
        stdout_fileno = fileno(stdout);
        if (stdout_fileno < 0) {
                perror("# Couldn't get fileno for stdout!?");
@@ -112,7 +115,7 @@ static void tap_comment_stdout(void)
 
        setlinebuf(stdout);
        setlinebuf(stderr);
-       setlinebuf(pipe_r_file);
+
 
        return;
 
-- 
1.7.2.3


_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev

Reply via email to