if (ff_check_interrupt(cb))
return AVERROR_EXIT;
ret = poll(p, nfds, POLLING_TIME);
- if (ret != 0)
+ if (ret != 0) {
+ if (ret < 0)
+ ret = ff_neterrno();
+ if (ret == AVERROR(EINTR))
+ continue;
break;
+ }
} while (timeout <= 0 || runs-- > 0);
if (!ret)
return AVERROR(ETIMEDOUT);
- if (ret < 0)
- return ff_neterrno();
return ret;
}