From 574cf9098d09c7c2e10c28cf577321161ddecd61 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 25 Dec 2019 07:50:44 +0000 Subject: qspawn: psgi_return_start: hoist out from psgi_return Instead of just passing the rpipe to the start_cb, pass the entire qspawn ref to start_cb. Update existing callers to avoid circular refs. --- t/qspawn.t | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 't') diff --git a/t/qspawn.t b/t/qspawn.t index fc288a2d..8bc88e0e 100644 --- a/t/qspawn.t +++ b/t/qspawn.t @@ -23,9 +23,9 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1); my $x = PublicInbox::Qspawn->new([qw(true)]); my $run = 0; $x->start($limiter, sub { - my ($rpipe) = @_; - is(0, sysread($rpipe, my $buf, 1), 'read zero bytes'); - ok(!finish_err($x), 'no error on finish'); + my ($self) = @_; + is(0, sysread($self->{rpipe}, my $buf, 1), 'read zero bytes'); + ok(!finish_err($self), 'no error on finish'); $run = 1; }); is($run, 1, 'callback ran alright'); @@ -35,9 +35,10 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1); my $x = PublicInbox::Qspawn->new([qw(false)]); my $run = 0; $x->start($limiter, sub { - my ($rpipe) = @_; - is(0, sysread($rpipe, my $buf, 1), 'read zero bytes from false'); - ok(finish_err($x), 'error on finish'); + my ($self) = @_; + is(0, sysread($self->{rpipe}, my $buf, 1), + 'read zero bytes from false'); + ok(finish_err($self), 'error on finish'); $run = 1; }); is($run, 1, 'callback ran alright'); @@ -47,16 +48,16 @@ foreach my $cmd ([qw(sleep 1)], [qw(sh -c), 'sleep 1; false']) { my $s = PublicInbox::Qspawn->new($cmd); my @run; $s->start($limiter, sub { - my ($rpipe) = @_; + my ($self) = @_; push @run, 'sleep'; - is(0, sysread($rpipe, my $buf, 1), 'read zero bytes'); + is(0, sysread($self->{rpipe}, my $buf, 1), 'read zero bytes'); }); my $n = 0; my @t = map { my $i = $n++; my $x = PublicInbox::Qspawn->new([qw(true)]); $x->start($limiter, sub { - my ($rpipe) = @_; + my ($self) = @_; push @run, $i; }); [$x, $i] -- cgit v1.2.3-24-ge0c7