This is future-proofing in case we build against Xapian directly
in the future, which would require a C++ compiler.
-static int sleep_wait(unsigned *try, int err)
+static int sleep_wait(unsigned *tries, int err)
{
const struct timespec req = { 0, 100000000 }; /* 100ms */
switch (err) {
case ENOBUFS: case ENOMEM: case ETOOMANYREFS:
{
const struct timespec req = { 0, 100000000 }; /* 100ms */
switch (err) {
case ENOBUFS: case ENOMEM: case ETOOMANYREFS:
fprintf(stderr, "sleeping on sendmsg: %s (#%u)\n",
fprintf(stderr, "sleeping on sendmsg: %s (#%u)\n",
+ strerror(err), *tries);
nanosleep(&req, NULL);
return 1;
}
nanosleep(&req, NULL);
return 1;
}
AV *fds = (AV *)SvRV(svfds);
I32 i, nfds = av_len(fds) + 1;
int *fdp;
AV *fds = (AV *)SvRV(svfds);
I32 i, nfds = av_len(fds) + 1;
int *fdp;
if (SvOK(data)) {
iov.iov_base = SvPV(data, dlen);
if (SvOK(data)) {
iov.iov_base = SvPV(data, dlen);
}
do {
sent = sendmsg(PerlIO_fileno(s), &msg, flags);
}
do {
sent = sendmsg(PerlIO_fileno(s), &msg, flags);
- } while (sent < 0 && sleep_wait(&try, errno));
+ } while (sent < 0 && sleep_wait(&tries, errno));
return sent >= 0 ? newSViv(sent) : &PL_sv_undef;
}
return sent >= 0 ? newSViv(sent) : &PL_sv_undef;
}