From: Mark Spencer Date: Thu, 20 Oct 2005 22:45:47 +0000 (+0000) Subject: Fix timeout > 600000 on Linux x86-32 X-Git-Tag: 1.2.0-beta2~87 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5ef59963d018fd1ded4d0d7f920fb4babde301c2;p=thirdparty%2Fasterisk.git Fix timeout > 600000 on Linux x86-32 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6836 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channel.c b/channel.c index 655bac85f6..dbfc98c5c2 100755 --- a/channel.c +++ b/channel.c @@ -1325,7 +1325,20 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds, } if (*ms > 0) start = ast_tvnow(); - res = poll(pfds, max, rms); + + if (sizeof(int) == 4) { + do { + int kbrms = rms; + if (kbrms > 600000) + kbrms = 600000; + res = poll(pfds, max, kbrms); + if (!res) + rms -= kbrms; + } while (!res && (rms > 0)); + } else { + res = poll(pfds, max, rms); + } + if (res < 0) { for (x=0; x < n; x++) ast_clear_flag(c[x], AST_FLAG_BLOCKING);