From 5ef59963d018fd1ded4d0d7f920fb4babde301c2 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Thu, 20 Oct 2005 22:45:47 +0000 Subject: Fix timeout > 600000 on Linux x86-32 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6836 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channel.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'channel.c') diff --git a/channel.c b/channel.c index 655bac85f..dbfc98c5c 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); -- cgit v1.2.3