Browse Source

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>
tags/n2.1
Andrey Utkin Michael Niedermayer 12 years ago
parent
commit
1e85b5e077
2 changed files with 3 additions and 3 deletions
  1. +2
    -2
      libavformat/network.c
  2. +1
    -1
      libavformat/network.h

+ 2
- 2
libavformat/network.c View File

@@ -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();


+ 1
- 1
libavformat/network.h View File

@@ -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);


Loading…
Cancel
Save