yangtse: curl-www/auto summarize.pl,1.62,1.63
[email protected] Tue, 19 Jan 2010 20:11:51 +0000
| Newsgroups | gmane.comp.web.curl.www.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/curl/curl-www/auto
In directory giant.haxx.se:/var/tmp/cvs-serv18589
Modified Files:
summarize.pl
Log Message:
Prevent summarize.pl to start when another instance is already running
using a different approach. Previous one seems to have a race condition.
Index: summarize.pl
===================================================================
RCS file: /cvsroot/curl/curl-www/auto/summarize.pl,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- summarize.pl 5 Nov 2009 16:47:22 -0000 1.62
+++ summarize.pl 19 Jan 2010 20:11:49 -0000 1.63
@@ -1,21 +1,16 @@
#!/usr/bin/env perl
-use Fcntl ':flock';
+BEGIN {
+ use Fcntl ':flock';
+ our $SEMAPHOREFH;
+ exit 1 unless(open($SEMAPHOREFH, "<$0"));
+ exit 1 unless(flock($SEMAPHOREFH, LOCK_EX|LOCK_NB));
+}
require "CGI.pm";
require "../curl.pm";
require "ccwarn.pm";
-my $SUMMARIZESEMAPHOREFH;
-my $summarize_semaphore = './inbox/summarize_pl.sem';
-
-open($SUMMARIZESEMAPHOREFH, ">$summarize_semaphore")
- or die("can't open $summarize_semaphore: $!");
-if(!flock($SUMMARIZESEMAPHOREFH, LOCK_EX|LOCK_NB)) {
- close($SUMMARIZESEMAPHOREFH);
- die("Another instance of summarize.pl already running");
-}
-
opendir(DIR, "inbox");
my @logs = grep { /^inbox.*log$/ } readdir(DIR);
closedir(DIR);
@@ -190,8 +185,7 @@
}
-close($SUMMARIZESEMAPHOREFH);
-exit;
+exit 0;
my $warning=0;