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: https://origsvn.digium.com/svn/asterisk/branches/1.8@281575 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2010-08-10 18:05:07 +00:00
parent 325a4cd89a
commit c11fb1b855

View File

@@ -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;
}