Something like:
while (1) { $mtime=(stat($data_file . $$))[9]; # drop out of the loop if the file hasn't # changed in 5 minutes (perhaps longer # for a wan connection ?) last if (time > $mtime + 300); }
That is a busy-wait loop. Even if the loop runs only once, you have called stat one million times and run up the load on the system for five minutes.
Try it like this:
my $old_mtime = (stat($file))[9]; if (time <= $old_mtime + 300) { while (1) { sleep 300; my $new_mtime=(stat($file))[9]; last if $old_mtime == $new_mtime; $old_mtime = $new_mtime; } }
In reply to Re: When is it safe to move a file?
by Dominus
in thread When is it safe to move a file?
by BoredByPolitics
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |