Change 34378 by [EMAIL PROTECTED] on 2008/09/17 07:01:00
Subject: Re: [PATCH] Revised: Improved documentation for flock() in
perlfunc.pod
From: Paul Fenwick <[EMAIL PROTECTED]>
Date: Tue, 16 Sep 2008 20:32:39 +1000
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/pod/perlfunc.pod#606 edit
Differences ...
==== //depot/perl/pod/perlfunc.pod#606 (text) ====
Index: perl/pod/perlfunc.pod
--- perl/pod/perlfunc.pod#605~34272~ 2008-09-05 06:57:08.000000000 -0700
+++ perl/pod/perlfunc.pod 2008-09-17 00:01:00.000000000 -0700
@@ -1935,25 +1935,27 @@
Here's a mailbox appender for BSD systems.
- use Fcntl ':flock'; # import LOCK_* constants
+ use Fcntl qw(:flock SEEK_END); # import LOCK_* and SEEK_END constants
sub lock {
- flock(MBOX,LOCK_EX);
- # and, in case someone appended
- # while we were waiting...
- seek(MBOX, 0, 2);
+ my ($fh) = @_;
+ flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
+
+ # and, in case someone appended while we were waiting...
+ seek($fh, 0, SEEK_END) or die "Cannot seek - $!\n";
}
sub unlock {
- flock(MBOX,LOCK_UN);
+ my ($fh) = @_;
+ flock($fh, LOCK_UN) or die "Cannot unlock mailbox - $!\n";
}
open(my $mbox, ">>", "/usr/spool/mail/$ENV{'USER'}")
or die "Can't open mailbox: $!";
- lock();
+ lock($mbox);
print $mbox $msg,"\n\n";
- unlock();
+ unlock($mbox);
On systems that support a real flock(), locks are inherited across fork()
calls, whereas those that must resort to the more capricious fcntl()
End of Patch.