package PerlIO::flock; use strict; require PerlIO::Util; 1; __END__ =encoding utf-8 =head1 NAME PerlIO::flock - Easy flock() interface =for test_synopsis my($file, $fh); =head1 SYNOPSIS open my $in, '< :flock', $file; # shared lock open my $out, '+<:flock', $file; # exclusive lock binmode($fh, ':flock(blocking)'); binmode($fh, ':flock(non-blocking)'); =head1 DESCRIPTION C provides an interface to C. It tries to lock the filehandle with C according to the open mode. That is, if a file is opened for writing, C<:flock> attempts exclusive lock (using LOCK_EX). Otherwise, it attempts shared lock (using LOCK_SH). It waits until the lock is granted. If an argument C (or C) is supplied, the call of C (or C) fails when the lock cannot be granted. This is a pseudo layer that doesn't be pushed on the layer stack. =head1 EXAMPLE # tries shared lock, or waits until the lock is granted open my $in, "<:flock", $file; open my $in, "<:flock(blocking)", $file; # ditto. # tries shared lock, or returns undef open my $in, "<:flock(non-blocking)", $file; open my $in, "<:flock(LOCK_NB)", $file; # ditto. =head1 SEE ALSO L. L. =head1 AUTHOR Goro Fuji (藤 吾郎) Egfuji (at) cpan.orgE =head1 LICENSE AND COPYRIGHT Copyright (c) 2008, Goro Fuji Egfuji (at) cpan.orgE. Some rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut