summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-01-19 19:15:50 -0400
committerJoshua Colp <jcolp@digium.com>2016-01-19 17:21:35 -0600
commit9fa76ba215ebe3ac225f2dd37f16942caf4e7e63 (patch)
treec7dcb046c2cea790b90d5ca4ef729d7d80bbf9a6 /tests
parentecfc3ed157f9ebf6bcc0bd2315eede05c0676e04 (diff)
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
Diffstat (limited to 'tests')
-rw-r--r--tests/test_threadpool.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/test_threadpool.c b/tests/test_threadpool.c
index 42181a25c..afb981be6 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);