aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2011-10-20 17:16:20 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2011-11-17 17:30:37 -0800
commitde8a626b40a30ed90541d091e95c1dc8da65fa8a (patch)
treef68ffa5e39fa4cdd64a6788528c5d61584ed98af
parent15a1988e224956704b7e19c914472e968b755b1f (diff)
downloadkup-de8a626b40a30ed90541d091e95c1dc8da65fa8a.tar.gz
kup-server: use IO::Handle to explicitly set autoflushingkup-0.3
Use IO::Handle to explicitly set autoflushing for specific file handles as needed (STDERR for displaying a progress bar, STDOUT after dir. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rwxr-xr-xkup-server8
1 files changed, 6 insertions, 2 deletions
diff --git a/kup-server b/kup-server
index ecd2271..3992aa5 100755
--- a/kup-server
+++ b/kup-server
@@ -59,6 +59,7 @@ use File::Temp qw(tempdir);
use BSD::Resource;
use Fcntl qw(:DEFAULT :flock :mode);
use POSIX;
+use IO::Handle;
use Sys::Syslog qw(:standard :macros);
use Git;
@@ -387,6 +388,9 @@ sub get_blob($$@)
$left -= $blk;
+ # STDERR needs to be flushed
+ STDERR->autoflush(1);
+
my $now = time();
my $perc = int((($len-$left)*100)/$len);
if ($left == 0 ?
@@ -1106,9 +1110,9 @@ sub do_dir(@)
closedir($dh);
# Termination marker to make output machine-readable
- $| = 1; # At least try to flush stdout after this line
+ STDOUT->autoflush(1); # At least try to flush stdout after this line
print "\n";
- $| = 0;
+ STDOUT->autoflush(0);
}
sub get_command()