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;