]> err.no Git - varnish/commitdiff
Allow a delay to be specified. Note that the delay is applied individually
authordes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 12 Jul 2007 22:41:08 +0000 (22:41 +0000)
committerdes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 12 Jul 2007 22:41:08 +0000 (22:41 +0000)
by each child.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1681 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-tools/fetcher/fetcher.pl

index 275b89e01b3bc392fbb4640aa6a4ac891a80a085..2f9519284b0f19bed8b39c46a4fd94f8e819209f 100755 (executable)
@@ -43,6 +43,9 @@ our %DONE;
 our %CHILD;
 our $BUSY;
 
+our $jobs = 1;
+our $delay = 0;
+
 sub new($$) {
     my ($this, $mux, $fh) = @_;
     my $class = ref($this) || $this;
@@ -77,6 +80,8 @@ sub run($$) {
                $s->write("add $_\n");
            }
        }
+       select(undef, undef, undef, $delay)
+           if $delay;
        $0 = "[fetcher] ready";
        $s->write("ready\n");
     }
@@ -133,8 +138,8 @@ sub mux_input($$$$) {
     }
 }
 
-sub fetcher($@) {
-    my ($n, @urls) = @_;
+sub fetcher(@) {
+    my (@urls) = @_;
 
     my $mux = new IO::Multiplex;
 
@@ -145,7 +150,7 @@ sub fetcher($@) {
 
     # start children
     $BUSY = 0;
-    for (my $i = 0; $i < $n; ++$i) {
+    for (my $i = 0; $i < $jobs; ++$i) {
        my ($s1, $s2);
        socketpair($s1, $s2, AF_UNIX, SOCK_STREAM, PF_UNSPEC);
        $s1->autoflush(1);
@@ -183,17 +188,17 @@ sub fetcher($@) {
 
 sub usage() {
 
-    print STDERR "usage: $0 [-j n] URL ...\n";
+    print STDERR "usage: $0 [-d n] [-j n] URL ...\n";
     exit(1);
 }
 
 MAIN:{
-    my $jobs = 1;
-    GetOptions("j|jobs=i" => \$jobs)
+    GetOptions("j|jobs=i" => \$jobs,
+              "d|delay=i" => \$delay)
        or usage();
     $jobs > 0
        or usage();
     @ARGV
        or usage();
-    fetcher($jobs, @ARGV);
+    fetcher(@ARGV);
 }