diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-12-01 23:34:58 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-12-01 23:34:58 +0000 |
commit | c837ef2f4eba3b890a0e7792dccb1e5ac327733a (patch) | |
tree | 15f61b2ae5faaeb838797d68f40ed118c963f4dc /channel.c | |
parent | a5ba1bf3b85dea32beb23a0b562275ad3b49fada (diff) |
ensure channel's scheduling context is freed (issue #5788)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@7268 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channel.c')
-rw-r--r-- | channel.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -909,8 +909,11 @@ void ast_channel_free(struct ast_channel *chan) free(chan->tech_pvt); } + if (chan->sched) + sched_context_destroy(chan->sched); + ast_copy_string(name, chan->name, sizeof(name)); - + /* Stop monitoring */ if (chan->monitor) { chan->monitor->stop( chan, 0 ); @@ -1294,8 +1297,10 @@ int ast_hangup(struct ast_channel *chan) ast_closestream(chan->stream); if (chan->vstream) /* Close video stream */ ast_closestream(chan->vstream); - if (chan->sched) + if (chan->sched) { sched_context_destroy(chan->sched); + chan->sched = NULL; + } if (chan->generatordata) /* Clear any tone stuff remaining */ chan->generator->release(chan, chan->generatordata); |