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
