retry_transfer_wrapper(): check for interrupt before operation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/27/head
Andrey Utkin 12 years ago committed by Michael Niedermayer
parent 1e85b5e077
commit 34fd21120d
  1. 4
      libavformat/avio.c

@ -273,6 +273,8 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
len = 0; len = 0;
while (len < size_min) { while (len < size_min) {
if (ff_check_interrupt(&h->interrupt_callback))
return AVERROR_EXIT;
ret = transfer_func(h, buf+len, size-len); ret = transfer_func(h, buf+len, size-len);
if (ret == AVERROR(EINTR)) if (ret == AVERROR(EINTR))
continue; continue;
@ -296,8 +298,6 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
if (ret) if (ret)
fast_retries = FFMAX(fast_retries, 2); fast_retries = FFMAX(fast_retries, 2);
len += ret; len += ret;
if (len < size && ff_check_interrupt(&h->interrupt_callback))
return AVERROR_EXIT;
} }
return len; return len;
} }

Loading…
Cancel
Save