Skip to content
Snippets Groups Projects
Commit 3a25935f authored by Mark Michelson's avatar Mark Michelson
Browse files

Fix infinite looping and crash problem.

MALLOC_DEBUG is complaining about corrupted memory on taskprocessor
listeners, but I'm not seeing it, nor is valgrind. Not sure what's up
there.



git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@377377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent ec29862a
No related branches found
No related tags found
No related merge requests found
......@@ -581,8 +581,6 @@ struct ast_taskprocessor *ast_taskprocessor_create_with_listener(const char *nam
/* decrement the taskprocessor reference count and unlink from the container if necessary */
void *ast_taskprocessor_unreference(struct ast_taskprocessor *tps)
{
struct ast_taskprocessor_listener *listener;
if (!tps) {
return NULL;
}
......@@ -596,10 +594,7 @@ void *ast_taskprocessor_unreference(struct ast_taskprocessor *tps)
* 3. The listener
*/
ao2_unlink(tps_singletons, tps);
listener = tps->listener;
tps->listener = NULL;
listener_shutdown(listener);
ao2_ref(listener, -1);
listener_shutdown(tps->listener);
return NULL;
}
......
......@@ -784,7 +784,7 @@ static void worker_active(struct worker_thread *worker)
{
int alive = 1;
while (alive) {
if (threadpool_execute(worker->pool)) {
if (threadpool_execute(worker->pool) == 0) {
alive = worker_idle(worker);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment