From 6b7bb7e119625146a1cc77acb210e0ea64fe1bb4 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Fri, 22 Jun 2018 03:18:44 +0200 Subject: [PATCH] =?UTF-8?q?FUCK=C2=A0YOU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SharedData/SharedData.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/SharedData/SharedData.c b/SharedData/SharedData.c index b0661cd..7dc6757 100644 --- a/SharedData/SharedData.c +++ b/SharedData/SharedData.c @@ -41,10 +41,8 @@ void start_all_threads_SharedData(THIS(SharedData)){ this->threads_nb = residents->get_size(residents) + visitors->get_size(visitors) + ELEVATOR_NB; this->threads = malloc_or_die(sizeof(pthread_t*) * this->threads_nb); - for (i=0; i < this->threads_nb; i++){ - this->threads[i] = NULL; + for (i=0; i < this->threads_nb; i++) this->threads[i] = malloc_or_die(sizeof(pthread_t)); - } pthread_mutex_lock(&this->mutex_active_passengers); pthread_mutex_lock(&this->mutex_threads); @@ -99,8 +97,8 @@ void _free__SharedData(THIS(SharedData)){ if (this->threads[i] != NULL) { printf("Quitting thread %d\n", (*(int*) this->threads[i])); pthread_kill(*this->threads[i], SIGUSR1); + free(this->threads[i]); } - free(this->threads[i]); } free(this->threads); } @@ -131,6 +129,7 @@ void decrement_active_passengers_SharedData(THIS(SharedData)){ void unregister_thread_SharedData(THIS(SharedData), int thread_number){ pthread_mutex_lock(&this->mutex_threads); + free(this->threads[thread_number]); this->threads[thread_number] = NULL; pthread_mutex_unlock(&this->mutex_threads); }