From f049b29491641e6af463b616e9081f2b3c68f628 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 2 Apr 2008 15:28:08 +0000 Subject: securing total_threads with the mutex while destroying the processor --- src/charon/processing/processor.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/charon/processing/processor.c') diff --git a/src/charon/processing/processor.c b/src/charon/processing/processor.c index bfae7bdff..e14679b14 100644 --- a/src/charon/processing/processor.c +++ b/src/charon/processing/processor.c @@ -193,11 +193,13 @@ static void set_threads(private_processor_t *this, u_int count) static void destroy(private_processor_t *this) { set_threads(this, 0); + pthread_mutex_lock(&this->mutex); while (this->total_threads > 0) { pthread_cond_broadcast(&this->condvar); pthread_cond_wait(&this->condvar, &this->mutex); } + pthread_mutex_unlock(&this->mutex); this->list->destroy_offset(this->list, offsetof(job_t, destroy)); free(this); } -- cgit v1.2.3