IPC-DirQueue
view release on metacpan or search on metacpan
lib/IPC/DirQueue.pm view on Meta::CPAN
if (defined $mtime) {
# *DO* call time() here. In extremely large dirs, it may take
# several seconds to traverse the entire listing from start
# to finish!
if (time() - $mtime < $self->{active_file_lifetime}) {
# active lockfile; it's being worked on. skip this file
next;
}
if ($self->worker_still_working($pathactive)) {
# worker is still alive, although not updating the lock
dbg ("worker still working, skip: $pathactive");
next;
}
# now, we want to try to avoid 2 or 3 dequeuers removing
# the lockfile simultaneously, as that could cause this race:
#
# dqproc1: [checks file] [unlinks] [starts work]
# dqproc2: [checks file] [unlinks]
#
( run in 0.779 second using v1.01-cache-2.11-cpan-39bf76dae61 )