summaryrefslogtreecommitdiffstats
path: root/lib/Smokeping
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Smokeping')
-rw-r--r--lib/Smokeping/Master.pm8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Smokeping/Master.pm b/lib/Smokeping/Master.pm
index 10333a8..ddd708e 100644
--- a/lib/Smokeping/Master.pm
+++ b/lib/Smokeping/Master.pm
@@ -139,14 +139,14 @@ sub get_slaveupdates {
my $data;
if ( open (my $hand, '<', $file) ) {
if ( flock $hand, LOCK_EX ){
- eval { $data = fd_retrieve $hand };
+ rename $file,$file.$$;
+ eval { $data = fd_retrieve $hand };
+ unlink $file.$$;
+ flock $hand, LOCK_UN;
if ($@) { #error
warn "Loading $file: $@";
return;
}
- seek $hand, 0,0;
- truncate $hand, 0;
- flock $hand, LOCK_UN;
} else {
warn "Could not lock $file. Can't load data.\n";
}