mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
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>
This commit is contained in:
parent
9219ec93b1
commit
1e85b5e077
@ -157,11 +157,11 @@ int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterrupt
|
|||||||
int64_t wait_start = 0;
|
int64_t wait_start = 0;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
if (ff_check_interrupt(int_cb))
|
||||||
|
return AVERROR_EXIT;
|
||||||
ret = ff_network_wait_fd(fd, write);
|
ret = ff_network_wait_fd(fd, write);
|
||||||
if (ret != AVERROR(EAGAIN))
|
if (ret != AVERROR(EAGAIN))
|
||||||
return ret;
|
return ret;
|
||||||
if (ff_check_interrupt(int_cb))
|
|
||||||
return AVERROR_EXIT;
|
|
||||||
if (timeout > 0) {
|
if (timeout > 0) {
|
||||||
if (!wait_start)
|
if (!wait_start)
|
||||||
wait_start = av_gettime();
|
wait_start = av_gettime();
|
||||||
|
@ -90,7 +90,7 @@ int ff_network_wait_fd(int fd, int write);
|
|||||||
* @fd Socket descriptor
|
* @fd Socket descriptor
|
||||||
* @write Set 1 to wait for socket able to be read, 0 to be written
|
* @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
|
* @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
|
* @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);
|
int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterruptCB *int_cb);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user