From 1b58c1eea8be8619e428f9995a4cb8ef1ec04941 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Sat, 6 Jul 2013 21:26:52 +0100 Subject: [PATCH] Fix #127, threads should not be cancelled after being joined --- src/gui/preview/PreviewModel.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/gui/preview/PreviewModel.cpp b/src/gui/preview/PreviewModel.cpp index 07c4f1fbe..9783ef195 100644 --- a/src/gui/preview/PreviewModel.cpp +++ b/src/gui/preview/PreviewModel.cpp @@ -347,9 +347,21 @@ void PreviewModel::Update() } PreviewModel::~PreviewModel() { - pthread_cancel(updateSaveDataThread); - pthread_cancel(updateSaveInfoThread); - pthread_cancel(updateSaveCommentsThread); + if (updateSaveDataWorking) + { + pthread_cancel(updateSaveDataThread); + pthread_join(updateSaveDataThread, NULL); + } + if (updateSaveInfoWorking) + { + pthread_cancel(updateSaveInfoThread); + pthread_join(updateSaveInfoThread, NULL); + } + if (updateSaveCommentsWorking) + { + pthread_cancel(updateSaveCommentsThread); + pthread_join(updateSaveCommentsThread, NULL); + } if(save) delete save; if(saveComments)