From 5db0b3e8bfd6fbd792e25e12262a5c313a50de88 Mon Sep 17 00:00:00 2001 From: russell Date: Tue, 10 Aug 2010 18:05:40 +0000 Subject: [PATCH] Merged revisions 281575 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r281575 | russell | 2010-08-10 13:05:07 -0500 (Tue, 10 Aug 2010) | 16 lines Merged revisions 281574 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r281574 | russell | 2010-08-10 13:04:32 -0500 (Tue, 10 Aug 2010) | 9 lines Don't move the time threshold for running scheduled events on every iteration. Instead, only calculate the time threshold each time ast_sched_runq() is called. (closes issue #17742) Reported by: schmidts Patches: sched.c.patch uploaded by schmidts (license 1077) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@281576 f38db490-d61c-443f-a65b-d21fe96a405b --- main/sched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/sched.c b/main/sched.c index 78de1a99e..8a3602a39 100644 --- a/main/sched.c +++ b/main/sched.c @@ -604,13 +604,13 @@ int ast_sched_runq(struct sched_context *con) ast_mutex_lock(&con->lock); + when = ast_tvadd(ast_tvnow(), ast_tv(0, 1000)); for (numevents = 0; (current = ast_heap_peek(con->sched_heap, 1)); numevents++) { /* schedule all events which are going to expire within 1ms. * We only care about millisecond accuracy anyway, so this will * help us get more than one event at one time if they are very * close together. */ - when = ast_tvadd(ast_tvnow(), ast_tv(0, 1000)); if (ast_tvcmp(current->when, when) != -1) { break; }