From: Joshua Colp Date: Tue, 19 Jan 2016 23:15:50 +0000 (-0400) Subject: test_threadpool: Wait for each task to complete and fix memory leak. X-Git-Tag: 13.8.0-rc1~121^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5c13c1545c069d31efd9af709c9f2af85c585a9;p=thirdparty%2Fasterisk.git 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 --- 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);