March 2002 Perl Hardware Store 21

4. Semaphore Files

         $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;


Next Copyright © 2002 M-J. Dominus