PIPE_BUF accounts for Linux being 4096 (and presumably other
OSes differing), while _POSIX_PIPE_BUF is the minimum 512
value.
our $in_cleanup;
our $RDTIMEO = 60_000; # milliseconds
our $in_cleanup;
our $RDTIMEO = 60_000; # milliseconds
-use constant MAX_INFLIGHT =>
- (($^O eq 'linux' ? 4096 : POSIX::_POSIX_PIPE_BUF()) * 3)
- /
+use constant MAX_INFLIGHT => (POSIX::PIPE_BUF * 3) /
65; # SHA-256 hex size + "\n" in preparation for git using non-SHA1
my %GIT_ESC = (
65; # SHA-256 hex size + "\n" in preparation for git using non-SHA1
my %GIT_ESC = (
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
use Errno qw(EINTR);
use Fcntl qw(:seek);
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
use Errno qw(EINTR);
use Fcntl qw(:seek);
-use POSIX qw(_POSIX_PIPE_BUF WNOHANG);
use File::Temp ();
my $jobs = 1;
my $repeat = 1;
use File::Temp ();
my $jobs = 1;
my $repeat = 1;
pipe(my ($rd, $wr)) or DIE "pipe: $!";
# fill the queue before forking so children can start earlier
pipe(my ($rd, $wr)) or DIE "pipe: $!";
# fill the queue before forking so children can start earlier
- my $n = (_POSIX_PIPE_BUF / UINT_SIZE);
+ my $n = (POSIX::PIPE_BUF / UINT_SIZE);
if ($n >= $#todo) {
print $wr join('', map { pack('I', $_) } (0..$#todo)) or DIE;
undef $wr;
if ($n >= $#todo) {
print $wr join('', map { pack('I', $_) } (0..$#todo)) or DIE;
undef $wr;