diff --git a/core/src/DataSource/DataSourceController.cpp b/core/src/DataSource/DataSourceController.cpp index 2a330b8..ed71deb 100644 --- a/core/src/DataSource/DataSourceController.cpp +++ b/core/src/DataSource/DataSourceController.cpp @@ -9,39 +9,37 @@ class DataSourceController::DataSourceControllerPrivate { public: DataSourceControllerPrivate() {} - QMutex m_WorkingMutex; }; DataSourceController::DataSourceController(QObject *parent) : impl{spimpl::make_unique_impl()} { - qCInfo(LOG_DataSourceController()) << tr("Construction du DataSourceController"); + qCDebug(LOG_DataSourceController()) << tr("Construction du DataSourceController") + << QThread::currentThread(); } DataSourceController::~DataSourceController() { - // delete impl; + qCDebug(LOG_DataSourceController()) << tr("Desctruction du DataSourceController") + << QThread::currentThread(); this->waitForFinish(); } void DataSourceController::initialize() { - qCInfo(LOG_DataSourceController()) << tr("initialize du DataSourceController"); + qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController") + << QThread::currentThread(); impl->m_WorkingMutex.lock(); - qCInfo(LOG_DataSourceController()) << tr("initialize du DataSourceController END"); + qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController END"); } void DataSourceController::finalize() { - qCInfo(LOG_DataSourceController()) << tr("finalize du DataSourceController"); impl->m_WorkingMutex.unlock(); - qCInfo(LOG_DataSourceController()) << tr("finalize du DataSourceController END"); } void DataSourceController::waitForFinish() { - qCInfo(LOG_DataSourceController()) << tr("waitForFinish du DataSourceController"); QMutexLocker locker(&impl->m_WorkingMutex); - qCInfo(LOG_DataSourceController()) << tr("waitForFinish du DataSourceController END"); } diff --git a/gui/src/SqpApplication.cpp b/gui/src/SqpApplication.cpp index 3bfa138..6900d5f 100644 --- a/gui/src/SqpApplication.cpp +++ b/gui/src/SqpApplication.cpp @@ -8,6 +8,13 @@ Q_LOGGING_CATEGORY(LOG_SqpApplication, "SqpApplication") class SqpApplication::SqpApplicationPrivate { public: SqpApplicationPrivate() {} + ~SqpApplicationPrivate() + { + qCInfo(LOG_SqpApplication()) << tr("Desctruction du SqpApplicationPrivate"); + ; + m_DataSourceControllerThread.quit(); + m_DataSourceControllerThread.wait(); + } std::unique_ptr m_DataSourceController; QThread m_DataSourceControllerThread; @@ -32,7 +39,6 @@ SqpApplication::SqpApplication(int &argc, char **argv) SqpApplication::~SqpApplication() { - impl->m_DataSourceControllerThread.quit(); } void SqpApplication::initialize()