Dir-Flock
---------

Directory-based advisory locking to provide synchronized
access to some resource.

Example:

   use Dir::Flock;

   # Existing directory
   my $dir = "/path/already/exists";
   if (Dir::Flock::lock($dir)) {
       # synchronized code
       Dir::Flock::unlock($dir);
   }


   # Dedicated temp directory, flock semantics
   use Fcntl ':flock';
   my $dir = Dir::Flock::getDir( "/some/path" ); # $dir is subdir of /some/path
   my $z = Dir::Flock::flock $dir, LOCK_EX | LOCK_NB;
   while (!$z) {
       print STDERR "Lock not available\n";
       do_unsynchronized_things();
       $z = Dir::Flock::flock $dir, LOCK_EX | LOCK_NB;
   }
   print STDERR "Acquired lock\n";
   do_synchronized_things();
   $z = Dir::Flock::flock $dir, LOCK_UN;


   # scoping semantics
   {
       my $mutex = Dir::Flock::lockobj( $somedir );
       do_synchronized_things();
   }  # unlocked as $mutex goes out of scope


   # code block semantics
   Dir::Flock::sync { do_synchronized_things() } "/some/directory";


INSTALLATION

To install this module, follow the usual recipe:

       perl Makefile.PL
       make
       make test
       make install

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

   perldoc Dir::Flock

You can also look for information at:

   RT, CPAN's request tracker
       http://rt.cpan.org/NoAuth/Bugs.html?Dist=Dir-Flock

   AnnoCPAN, Annotated CPAN documentation
       http://annocpan.org/dist/Dir-Flock

   CPAN Ratings
       http://cpanratings.perl.org/d/Dir-Flock



LICENSE AND COPYRIGHT

Copyright (C) 2019 Marty O'Brien

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.