From 1b58c1eea8be8619e428f9995a4cb8ef1ec04941 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Sat, 6 Jul 2013 21:26:52 +0100 Subject: Fix #127, threads should not be cancelled after being joined diff --git a/src/gui/preview/PreviewModel.cpp b/src/gui/preview/PreviewModel.cpp index 07c4f1f..9783ef1 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) -- cgit v0.9.2-21-gd62e