aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanislav Brabec <sbrabec@suse.cz>2015-02-06 19:59:14 +0100
committerKarel Zak <kzak@redhat.com>2015-02-10 11:18:51 +0100
commit0b285b84b2f14339fd86857244654ba25fac7d73 (patch)
treee24b2bbcce12294a9c6137512abb4755143869e7
parent6f41c5de40629c71a8f79e9be4b94f9a75f9ad21 (diff)
downloadutil-linux-playground-0b285b84b2f14339fd86857244654ba25fac7d73.tar.gz
Fix "Script started" buffering race
script -c "echo Hallo World" </dev/null >script.log ; cat script.log Before: Hallo World Script started, file is typescript Script started, file is typescript Script done, file is typescript After: Script started, file is typescript Hallo World Script done, file is typescript
-rw-r--r--term-utils/script.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/term-utils/script.c b/term-utils/script.c
index 548334cbc2..02ba5965db 100644
--- a/term-utils/script.c
+++ b/term-utils/script.c
@@ -269,6 +269,7 @@ main(int argc, char **argv) {
sigprocmask(SIG_SETMASK, NULL, &block_mask);
sigaddset(&block_mask, SIGCHLD);
+ fflush(stdout);
sigprocmask(SIG_SETMASK, &block_mask, &unblock_mask);
child = fork();
sigprocmask(SIG_SETMASK, &unblock_mask, NULL);