yangtse: curl-www/auto summarize.pl,1.61,1.62

[email protected] Thu, 05 Nov 2009 16:47:24 +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-serv22444/auto

Modified Files:
	summarize.pl 
Log Message:
Prevent summarize.pl to start when another instance is already running

Index: summarize.pl
===================================================================
RCS file: /cvsroot/curl/curl-www/auto/summarize.pl,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- summarize.pl	5 Oct 2009 02:13:02 -0000	1.61
+++ summarize.pl	5 Nov 2009 16:47:22 -0000	1.62
@@ -1,9 +1,21 @@
 #!/usr/bin/env perl
 
+use Fcntl ':flock';
+
 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);
@@ -178,6 +190,7 @@
 
 }
 
+close($SUMMARIZESEMAPHOREFH);
 exit;
 
 my $warning=0;