diff options
author | Corey Farrell <git@cfware.com> | 2015-02-19 02:03:01 +0000 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2015-02-19 02:03:01 +0000 |
commit | a4774ceaa5cc28d6b885270ffa5fa6400e12b474 (patch) | |
tree | 40bbf5dead60c99162defeb7a5a6d7464d9c0e81 /include/asterisk | |
parent | 09bfe4b2088e61a085004f5cd679040532533054 (diff) |
Create work around for scheduler leaks during shutdown.
* Added ast_sched_clean_by_callback for cleanup of scheduled events
that have not yet fired.
* Run all pending peercnt_remove_cb and replace_callno events in chan_iax2.
Cleanup of replace_callno events is only run 11, since it no longer
releases any references or allocations in 13+.
ASTERISK-24451 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/4425/
........
Merged revisions 431916 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 431917 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431918 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/sched.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/asterisk/sched.h b/include/asterisk/sched.h index 67dbf21ce..b775095ad 100644 --- a/include/asterisk/sched.h +++ b/include/asterisk/sched.h @@ -170,6 +170,17 @@ void ast_sched_context_destroy(struct ast_sched_context *c); typedef int (*ast_sched_cb)(const void *data); #define AST_SCHED_CB(a) ((ast_sched_cb)(a)) +/*! + * \brief Clean all scheduled events with matching callback. + * + * \param con Scheduler Context + * \param match Callback to match + * \param cleanup_cb Callback to run + * + * \note The return of cleanup_cb is ignored. No events are rescheduled. + */ +void ast_sched_clean_by_callback(struct ast_sched_context *con, ast_sched_cb match, ast_sched_cb cleanup_cb); + struct ast_cb_names { int numassocs; char *list[10]; |