Browse Source

network: Check for EINTR in ff_poll_interrupt

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n4.1
Martin Storsjö 7 years ago
parent
commit
22f98ac19c
1 changed files with 6 additions and 3 deletions
  1. +6
    -3
      libavformat/network.c

+ 6
- 3
libavformat/network.c View File

@@ -131,14 +131,17 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout,
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;
}



Loading…
Cancel
Save