use PublicInbox::Gcf2; # fails if Inline::C or libgit2-dev isn't available
use PublicInbox::Spawn qw(spawn);
use Socket qw(AF_UNIX SOCK_STREAM);
-use PublicInbox::Syscall qw(EPOLLIN EPOLLET);
+use PublicInbox::Syscall qw(EPOLLIN);
use PublicInbox::ProcessPipe;
# fields:
my $sock = PublicInbox::ProcessPipe->maybe_new($pid, $s1);
$self->{inflight} = [];
$self->{epwatch} = \undef; # for Git->cleanup
- $self->SUPER::new($sock, EPOLLIN|EPOLLET);
+ $self->SUPER::new($sock, EPOLLIN);
}
sub gcf2_async ($$$;$) {
if ($inflight && @$inflight) {
$self->cat_async_step($inflight);
return $self->close unless $self->{sock};
- # more to do? requeue for fairness:
- $self->requeue if @$inflight || exists($self->{rbuf});
+ # don't loop here to keep things fair, but we must requeue
+ # if there's already-read data in rbuf
+ $self->requeue if exists($self->{rbuf});
}
}
# idempotently registers with DS epoll/kqueue/select/poll
sub watch_async ($) {
$_[0]->{epwatch} //= do {
- $_[0]->SUPER::new($_[0]->{sock}, EPOLLIN|EPOLLET);
+ $_[0]->SUPER::new($_[0]->{sock}, EPOLLIN);
\undef;
}
}