##// END OF EJS Templates
Ajout de la méthode wait pour éviter de détruire un thread en cours...
Ajout de la méthode wait pour éviter de détruire un thread en cours d'éxécution

File last commit:

r22:ac81b58d0bc3
r22:ac81b58d0bc3
Show More
DataSourceController.cpp
45 lines | 1.3 KiB | text/x-c | CppLexer
/ core / src / DataSource / DataSourceController.cpp
#include "DataSource/DataSourceController.h"
#include <QMutex>
#include <QThread>
Q_LOGGING_CATEGORY(LOG_DataSourceController, "dataSourceController")
class DataSourceController::DataSourceControllerPrivate {
public:
DataSourceControllerPrivate() {}
QMutex m_WorkingMutex;
};
DataSourceController::DataSourceController(QObject *parent)
: impl{spimpl::make_unique_impl<DataSourceControllerPrivate>()}
{
qCDebug(LOG_DataSourceController()) << tr("Construction du DataSourceController")
<< QThread::currentThread();
}
DataSourceController::~DataSourceController()
{
qCDebug(LOG_DataSourceController()) << tr("Desctruction du DataSourceController")
<< QThread::currentThread();
this->waitForFinish();
}
void DataSourceController::initialize()
{
qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController")
<< QThread::currentThread();
impl->m_WorkingMutex.lock();
qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController END");
}
void DataSourceController::finalize()
{
impl->m_WorkingMutex.unlock();
}
void DataSourceController::waitForFinish()
{
QMutexLocker locker(&impl->m_WorkingMutex);
}