summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Utkin <andrey.krieger.utkin@gmail.com>2013-07-12 10:35:51 +0300
committerMichael Niedermayer <michaelni@gmx.at>2013-07-12 21:27:27 +0200
commit1e85b5e077e7e6fb9901bfd1a7a4f2594ba5a9a5 (patch)
treee76de9413e7c5ee32d1589973835e8f5745a2be1
parent9219ec93b145725ac74fbfbde7f67ac5135b85cf (diff)
ff_network_wait_fd_timeout(): check for interrupt before operation
Reviewed-by: Lukasz M <lukasz.m.luki@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/network.c4
-rw-r--r--libavformat/network.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/libavformat/network.c b/libavformat/network.c
index 55392af043..1cd83b80c5 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -157,11 +157,11 @@ int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterrupt
int64_t wait_start = 0;
while (1) {
+ if (ff_check_interrupt(int_cb))
+ return AVERROR_EXIT;
ret = ff_network_wait_fd(fd, write);
if (ret != AVERROR(EAGAIN))
return ret;
- if (ff_check_interrupt(int_cb))
- return AVERROR_EXIT;
if (timeout > 0) {
if (!wait_start)
wait_start = av_gettime();
diff --git a/libavformat/network.h b/libavformat/network.h
index d0a1e3174c..9cfad114f2 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -90,7 +90,7 @@ int ff_network_wait_fd(int fd, int write);
* @fd Socket descriptor
* @write Set 1 to wait for socket able to be read, 0 to be written
* @timeout Timeout interval, in microseconds. Actual precision is 100000 mcs, due to ff_network_wait_fd usage
- * @param int_cb Interrupt callback, is checked after each ff_network_wait_fd call
+ * @param int_cb Interrupt callback, is checked before each ff_network_wait_fd call
* @return 0 if data can be read/written, AVERROR(ETIMEDOUT) if timeout expired, or negative error code
*/
int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterruptCB *int_cb);