##// 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
Initialisation de l'application multithread avec le spimpl....
r21 #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>()}
{
Ajout de la méthode wait pour éviter de détruire un thread en cours...
r22 qCDebug(LOG_DataSourceController()) << tr("Construction du DataSourceController")
<< QThread::currentThread();
Initialisation de l'application multithread avec le spimpl....
r21 }
DataSourceController::~DataSourceController()
{
Ajout de la méthode wait pour éviter de détruire un thread en cours...
r22 qCDebug(LOG_DataSourceController()) << tr("Desctruction du DataSourceController")
<< QThread::currentThread();
Initialisation de l'application multithread avec le spimpl....
r21 this->waitForFinish();
}
void DataSourceController::initialize()
{
Ajout de la méthode wait pour éviter de détruire un thread en cours...
r22 qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController")
<< QThread::currentThread();
Initialisation de l'application multithread avec le spimpl....
r21 impl->m_WorkingMutex.lock();
Ajout de la méthode wait pour éviter de détruire un thread en cours...
r22 qCDebug(LOG_DataSourceController()) << tr("initialize du DataSourceController END");
Initialisation de l'application multithread avec le spimpl....
r21 }
void DataSourceController::finalize()
{
impl->m_WorkingMutex.unlock();
}
void DataSourceController::waitForFinish()
{
QMutexLocker locker(&impl->m_WorkingMutex);
}