[ANN] posixlock-0.0.1

SYNOPSIS: |

   methods to add posix (fcntl based and nfs safe) locking to the builtin File
   class

URLS:

   - http://raa.ruby-lang.org/project/posixlock/

   - Index of /lib/ruby/posixlock

EXAMPLES:

   - |

     File.open('even_an_nfs_mounted_file','r+').posixlock File::LOCK_EX

   - |

     File.open('even_an_nfs_mounted_file','r+').lockf File::F_LOCK, 0

   - |

     open('even_an_nfs_mounted_file','r') do |f|
       f.lockf File::F_LOCKR, 42
     end

   - |

     f = open 'foo', 'r+'

     if((pid = f.lockf File::F_TEST, 0))
       STDERR.puts "process <#{ pid }> prevents write lock"
     end

   - |

     f = open 'foo', 'r'

     if((pid = f.lockf File::F_TESTR, 0))
       STDERR.puts "process <#{ pid }> prevents read lock"
     end

DOCS:

   - posixlock.c

   - File#posixlock has an identical interface to the builtin File#flock

   - |
     for File#lockf see man (3) lockf

     the additional flags

       File::F_LOCKR
       File::F_LOCKW
       File::F_TLOCKR
       File::F_TLOCKW
       File::F_TESTR
       File::F_TESTW

     have the obvious meaning

AUTHOR: |

   ara.t.howard@noaa.gov

BUGS: |

   > 1

HISTORY:

   1.0.0: |
     changed behaviour so that, instead of replacing flock, two new methods are
     added: File#posixlock gives access to read/write locks with an interface
     identical to File#flock, and File#lockf gives access to a lockf impl
     similar to the one posix specifies with added functionality for read
     locks. the biggest difference between the two methods is that lockf will
     throw errors for errno's like EAGAIN, EACCESS, etc.

   0.0.0: |
     initial version

-a

···

--

EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
A flower falls, even though we love it;
and a weed grows, even though we do not love it. --Dogen

===============================================================================