Dmitry Karasik > IO-Lambda > IO::Lambda::Flock

Download:
IO-Lambda-1.23.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source  

NAME ^

IO::Lambda::Flock - lambda-style file locking

DESCRIPTION ^

The module provides file locking interface for the lambda style, implemented by using non-blocking, periodic polling of flock(2).

SYNOPSIS ^

    open LOCK, ">lock";
    lambda {
        # obtain the lock 
        context \*LOCK, timeout => 10;
        flock { die "can't obtain lock" unless shift }
        
        # while reading from handle
        context $handle;
        readable { ... }

        # and showing status 
        context 0.5;
        timeout { print '.'; again }
    };

API ^

flock($filehandle, %options) -> ($lock_obtained = 1 | $timeout = 0)

Waits until the file lock is obtained or the timeout is expired. When successful, the (shared or exclusive) lock on $filehandle is acquired by flock($filehandle, LOCK_NB) call. Options:

timeout or deadline

These two options are synonyms, both declare the moment when the lambda waiting for the lock should give up. If undef, timeout never occurs.

shared

If set, LOCK_SH is used, otherwise LOCK_EX.

frequency

Defines how often the polling for the lock should occur. If left undefined, polling occurs during idle time, when other events are dispatched.

SEE ALSO ^

Fcntl, IO::Lambda::Poll.

AUTHOR ^

Dmitry Karasik, <dmitry@karasik.eu.org>.

syntax highlighting: