[FFmpeg-cvslog] network: Check for EINTR in ff_poll_interrupt
Martin Storsjö
git at videolan.org
Tue Sep 11 19:33:30 EEST 2018
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Thu Aug 9 21:30:48 2018 +0300| [22f98ac19cf29f22b3e1d10314df9503f06fe683] | committer: Martin Storsjö
network: Check for EINTR in ff_poll_interrupt
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=22f98ac19cf29f22b3e1d10314df9503f06fe683
---
libavformat/network.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavformat/network.c b/libavformat/network.c
index 1e02668ecf..24fcf20539 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -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;
}
More information about the ffmpeg-cvslog
mailing list