From 9fa76ba215ebe3ac225f2dd37f16942caf4e7e63 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Tue, 19 Jan 2016 19:15:50 -0400
Subject: [PATCH] test_threadpool: Wait for each task to complete and fix
 memory leak.

This change makes the thread_timeout_thrash unit test wait for
each task to complete. This fixes the problem where the test would
prematurely end when all threads were gone and a new one had to be
started to handle the last task. It also increases the thrasing as
it is now more likely for each task to encounter the above scenario.

This also fixes a memory leak where the data for each task was not
being freed.

ASTERISK-25611 #close

Change-Id: I5017d621a4dc911f509074c16229b86bff2fb3c6
---
 tests/test_threadpool.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/test_threadpool.c b/tests/test_threadpool.c
index 42181a25cc..afb981be60 100644
--- a/tests/test_threadpool.c
+++ b/tests/test_threadpool.c
@@ -636,6 +636,14 @@ AST_TEST_DEFINE(threadpool_thread_timeout_thrash)
 		ast_mutex_unlock(&tld->lock);
 
 		ast_threadpool_push(pool, simple_task, std);
+
+		res = wait_for_completion(test, std);
+
+		ast_free(std);
+
+		if (res == AST_TEST_FAIL) {
+			goto end;
+		}
 	}
 
 	res = wait_until_thread_state(test, tld, 0, 0);
-- 
GitLab