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

@@ -71,6 +71,18 @@ typedef int (*ast_sched_cb)(void *data);
*/
int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, void *data);
/*!
* \brief replace a scheduler entry
*
* This deletes the scheduler entry for old_id if it exists, and then
* calls ast_sched_add to create a new entry. A negative old_id will
* be ignored.
*
* \retval -1 failure
* \retval otherwise, returns scheduled item ID
*/
int ast_sched_replace(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data);
/*!Adds a scheduled event with rescheduling support
* \param con Scheduler context to add
* \param when how many milliseconds to wait for event to occur
@@ -86,6 +98,18 @@ int ast_sched_add(struct sched_context *con, int when, ast_sched_cb callback, vo
*/
int ast_sched_add_variable(struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable);
/*!
* \brief replace a scheduler entry
*
* This deletes the scheduler entry for old_id if it exists, and then
* calls ast_sched_add to create a new entry. A negative old_id will
* be ignored.
*
* \retval -1 failure
* \retval otherwise, returns scheduled item ID
*/
int ast_sched_replace_variable(int old_id, struct sched_context *con, int when, ast_sched_cb callback, void *data, int variable);
/*! \brief Deletes a scheduled event
* Remove this event from being run. A procedure should not remove its
* own event, but return 0 instead.