actually make the RunningMarker run on a different thread

This commit is contained in:
Brad Hefta-Gaub 2016-10-24 18:55:25 -07:00
parent dd45500313
commit ae6022c498
2 changed files with 17 additions and 8 deletions

View file

@ -19,35 +19,40 @@
#include "NumericalConstants.h" #include "NumericalConstants.h"
#include "PathUtils.h" #include "PathUtils.h"
RunningMarker::RunningMarker(QObject* parent, QString name) : RunningMarker::RunningMarker(QObject* parent, QString name) :
_parent(parent), _parent(parent),
_name(name) _name(name)
{ {
qDebug() << __FUNCTION__ << "parent:" << parent << "name:" << name;
} }
void RunningMarker::startRunningMarker() { void RunningMarker::startRunningMarker() {
static const int RUNNING_STATE_CHECK_IN_MSECS = MSECS_PER_SECOND; static const int RUNNING_STATE_CHECK_IN_MSECS = MSECS_PER_SECOND;
// start the nodeThread so its event loop is running // start the nodeThread so its event loop is running
QThread* runningMarkerThread = new QThread(_parent); _runningMarkerThread = new QThread(_parent);
runningMarkerThread->setObjectName("Running Marker Thread"); _runningMarkerThread->setObjectName("Running Marker Thread");
runningMarkerThread->start(); _runningMarkerThread->start();
writeRunningMarkerFiler(); // write the first file, even before timer writeRunningMarkerFiler(); // write the first file, even before timer
QTimer* runningMarkerTimer = new QTimer(_parent); _runningMarkerTimer = new QTimer();
QObject::connect(runningMarkerTimer, &QTimer::timeout, [=](){ QObject::connect(_runningMarkerTimer, &QTimer::timeout, [=](){
writeRunningMarkerFiler(); writeRunningMarkerFiler();
}); });
runningMarkerTimer->start(RUNNING_STATE_CHECK_IN_MSECS); //QObject::connect(_runningMarkerThread, &QThread::finished, _runningMarkerTimer, &QObject::deleteLater);
_runningMarkerTimer->start(RUNNING_STATE_CHECK_IN_MSECS);
// put the time on the thread // put the time on the thread
runningMarkerTimer->moveToThread(runningMarkerThread); _runningMarkerTimer->moveToThread(_runningMarkerThread);
} }
RunningMarker::~RunningMarker() { RunningMarker::~RunningMarker() {
deleteRunningMarkerFile(); deleteRunningMarkerFile();
_runningMarkerTimer->stop();
_runningMarkerThread->quit();
_runningMarkerTimer->deleteLater();
_runningMarkerThread->deleteLater();
} }
void RunningMarker::writeRunningMarkerFiler() { void RunningMarker::writeRunningMarkerFiler() {

View file

@ -14,6 +14,8 @@
#include <QObject> #include <QObject>
#include <QString> #include <QString>
#include <QThread>
#include <QTimer>
class RunningMarker { class RunningMarker {
public: public:
@ -30,6 +32,8 @@ protected:
QObject* _parent { nullptr }; QObject* _parent { nullptr };
QString _name; QString _name;
QThread* _runningMarkerThread { nullptr };
QTimer* _runningMarkerTimer { nullptr };
}; };
#endif // hifi_RunningMarker_h #endif // hifi_RunningMarker_h