This commit adds a scheduler API call, ast_sched_replace that can be used

in place of a very common construct.  I also used it in a number of places
in chan_sip.

  if (id > -1)
     ast_sched_del(sched, id);
  id = ast_sched_add(sched, ...);

changes to:

  ast_sched_replace(id, sched, ...);


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2007-08-17 14:07:44 +00:00
parent c78ddffb04
commit f5bf66bcd7
3 changed files with 61 additions and 40 deletions

View File

@@ -207,6 +207,12 @@ static int sched_settime(struct timeval *tv, int when)
return 0;
}
int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable)
{
if (old_id > -1)
ast_sched_del(con, old_id);
return ast_sched_add_variable(con, when, callback, data, variable);
}
/*! \brief
* Schedule callback(data) to happen when ms into the future
@@ -244,6 +250,13 @@ int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb cal
return res;
}
int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data)
{
if (old_id > -1)
ast_sched_del(con, old_id);
return ast_sched_add(con, when, callback, data);
}
int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, void *data)
{
return ast_sched_add_variable(con, when, callback, data, 0);