From 9d2ea1fcd89e5bdc6edc9a2e89567cffb8445044 Mon Sep 17 00:00:00 2001 From: Hardening Date: Wed, 23 Apr 2014 16:59:14 +0200 Subject: [PATCH] Fix Thread handle leak When a thread pool is release the Thread handle is leaked. --- winpr/libwinpr/pool/pool.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/winpr/libwinpr/pool/pool.c b/winpr/libwinpr/pool/pool.c index 2151370..2030646 100644 --- a/winpr/libwinpr/pool/pool.c +++ b/winpr/libwinpr/pool/pool.c @@ -103,6 +103,11 @@ static void* thread_pool_work_func(void* arg) return NULL; } +static void threads_close(void *thread) +{ + CloseHandle(thread); +} + void InitializeThreadpool(PTP_POOL pool) { int index; @@ -114,6 +119,7 @@ void InitializeThreadpool(PTP_POOL pool) pool->Maximum = 500; pool->Threads = ArrayList_New(TRUE); + pool->Threads->object.fnObjectFree = threads_close; pool->PendingQueue = Queue_New(TRUE, -1, -1); pool->WorkComplete = CountdownEvent_New(0); -- 2.7.4