| March 2002 | Perl Hardware Store | 21 |
$FILE = '/data/hitcounter';
$SEMAPHORE = $FILE . '.lck';
print "Content-type: text/html\n\n";
open S, "> $SEMAPHORE" or die ...;
if (something()) {
flock S, LOCK_SH;
open F, $FILE or die ...;
print while <F>;
} else {
flock S, LOCK_EX;
open F, "> $FILE" or die ...;
my $data = qx{some command};
print F $data;
}
close F; close S;
This solves all sorts of problems
I had a long conversation last week with a guy trying to lock a DB_File database portably
Believe me, you don't want to hear the details
The upshot: This trick works, and nothing else does
| Next | ![]() |
Copyright © 2002 M-J. Dominus |