parallel: Timings in --joblog now with milliseconds.

This commit is contained in:
Ole Tange 2012-05-13 16:34:29 +02:00
parent 398e78e8cd
commit 76c477d94d

View file

@ -1912,6 +1912,21 @@ sub usleep {
} }
} }
sub hires_time {
# Returns time since epoch as float
if(not $Global::use{"Time::HiRes"}) {
if(eval "use Time::HiRes qw ( time );") {
eval "sub TimeHiRestime { return Time::HiRes::time };";
} else {
eval "sub TimeHiRestime { return time() };";
}
$Global::use{"Time::HiRes"} = 1;
}
return TimeHiRestime();
}
sub multiply_binary_prefix { sub multiply_binary_prefix {
# Evalualte numbers with binary prefix # Evalualte numbers with binary prefix
# k=10^3, m=10^6, g=10^9, t=10^12, p=10^15, e=10^18, z=10^21, y=10^24 # k=10^3, m=10^6, g=10^9, t=10^12, p=10^15, e=10^18, z=10^21, y=10^24
@ -3092,18 +3107,18 @@ sub set_pid {
sub starttime { sub starttime {
my $self = shift; my $self = shift;
return $self->{'starttime'}; return ((int(($self->{'starttime'})*1000))/1000);
} }
sub set_starttime { sub set_starttime {
my $self = shift; my $self = shift;
my $starttime = shift || time; my $starttime = shift || ::hires_time();
$self->{'starttime'} = $starttime; $self->{'starttime'} = $starttime;
} }
sub runtime { sub runtime {
my $self = shift; my $self = shift;
return $self->{'endtime'}-$self->{'starttime'}; return ((int(($self->{'endtime'}-$self->{'starttime'})*1000))/1000);
} }
sub endtime { sub endtime {
@ -3113,7 +3128,7 @@ sub endtime {
sub set_endtime { sub set_endtime {
my $self = shift; my $self = shift;
my $endtime = shift || time; my $endtime = shift || ::hires_time();
$self->{'endtime'} = $endtime; $self->{'endtime'} = $endtime;
} }
@ -4881,7 +4896,7 @@ sub replace {
$s =~ s:^.*/([^/]+)/?$:$1:; # Remove dir from argument. If ending in /, remove final / $s =~ s:^.*/([^/]+)/?$:$1:; # Remove dir from argument. If ending in /, remove final /
} elsif($replacement_string eq "{//}") { } elsif($replacement_string eq "{//}") {
# Only load File::Basename if actually needed # Only load File::Basename if actually needed
$Global::use{"File::Basename"} ||= eval "use File::Basename;"; $Global::use{"File::Basename"} ||= eval "use File::Basename; 1;";
$s = dirname($s); # Keep dir from argument. $s = dirname($s); # Keep dir from argument.
} elsif($replacement_string eq "{/.}") { } elsif($replacement_string eq "{/.}") {
$s =~ s:^.*/([^/]+)/?$:$1:; # Remove dir from argument. If ending in /, remove final / $s =~ s:^.*/([^/]+)/?$:$1:; # Remove dir from argument. If ending in /, remove final /
@ -5111,7 +5126,7 @@ sub lock {
open $self->{'lockfh'}, ">", $self->{'lockfile'} open $self->{'lockfh'}, ">", $self->{'lockfile'}
or ::die_bug("Can't open semaphore file $self->{'lockfile'}: $!"); or ::die_bug("Can't open semaphore file $self->{'lockfile'}: $!");
chmod 0666, $self->{'lockfile'}; # assuming you want it a+rw chmod 0666, $self->{'lockfile'}; # assuming you want it a+rw
$Global::use{"Fcntl"} ||= eval "use Fcntl qw(:DEFAULT :flock);"; $Global::use{"Fcntl"} ||= eval "use Fcntl qw(:DEFAULT :flock); 1;";
while(not flock $self->{'lockfh'}, LOCK_EX()|LOCK_NB()) { while(not flock $self->{'lockfh'}, LOCK_EX()|LOCK_NB()) {
if ($! =~ m/Function not implemented/) { if ($! =~ m/Function not implemented/) {
print $Global::original_stderr print $Global::original_stderr