]> Sergey Matveev's repositories - public-inbox.git/commitdiff
qspawn: remove return value from ->finish
authorEric Wong <e@80x24.org>
Tue, 17 Sep 2019 08:31:18 +0000 (08:31 +0000)
committerEric Wong <e@80x24.org>
Tue, 17 Sep 2019 08:31:39 +0000 (08:31 +0000)
We don't use the return value in real code since we do waitpid
asynchronously, now.  So simplify our runtime code at the cost
of making our test slighly more complex.

lib/PublicInbox/Qspawn.pm
t/qspawn.t

index 54976b008d839b302a0d4c262157691f32818a07..6b350f0f7ed152a5def1104b5b72203c27d6f22e 100644 (file)
@@ -141,7 +141,6 @@ sub finish ($;$) {
                        _do_spawn(@$next);
                }
        }
-       $self->{err}; # may be meaningless if non-blocking
 }
 
 sub start {
index ab6e37586fb14bc6ed57bc19da3f2c0474f9564c..58c6febb544738e1b99465e8ba74037a812f0681 100644 (file)
@@ -11,6 +11,12 @@ use_ok 'PublicInbox::Qspawn';
        is($res, "err\nout\n", 'captured stderr and stdout');
 }
 
+sub finish_err ($) {
+       my ($qsp) = @_;
+       $qsp->finish;
+       $qsp->{err};
+}
+
 my $limiter = PublicInbox::Qspawn::Limiter->new(1);
 {
        my $x = PublicInbox::Qspawn->new([qw(true)]);
@@ -18,7 +24,7 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1);
        $x->start($limiter, sub {
                my ($rpipe) = @_;
                is(0, sysread($rpipe, my $buf, 1), 'read zero bytes');
-               ok(!$x->finish, 'no error on finish');
+               ok(!finish_err($x), 'no error on finish');
                $run = 1;
        });
        is($run, 1, 'callback ran alright');
@@ -30,8 +36,7 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1);
        $x->start($limiter, sub {
                my ($rpipe) = @_;
                is(0, sysread($rpipe, my $buf, 1), 'read zero bytes from false');
-               my $err = $x->finish;
-               ok($err, 'error on finish');
+               ok(finish_err($x), 'error on finish');
                $run = 1;
        });
        is($run, 1, 'callback ran alright');
@@ -57,11 +62,11 @@ foreach my $cmd ([qw(sleep 1)], [qw(sh -c), 'sleep 1; false']) {
        } (0..2);
 
        if ($cmd->[-1] =~ /false\z/) {
-               ok($s->finish, 'got error on false after sleep');
+               ok(finish_err($s), 'got error on false after sleep');
        } else {
-               ok(!$s->finish, 'no error on sleep');
+               ok(!finish_err($s), 'no error on sleep');
        }
-       ok(!$_->[0]->finish, "true $_->[1] succeeded") foreach @t;
+       ok(!finish_err($_->[0]), "true $_->[1] succeeded") foreach @t;
        is_deeply([qw(sleep 0 1 2)], \@run, 'ran in order');
 }