Undo "Revert "do not use QThread::create""

This reverts commit 4b86849356.
This commit is contained in:
WarmUpTill 2020-06-06 18:51:26 +02:00 committed by Myned
parent acd2e2863a
commit 2f77d99161
No known key found for this signature in database
GPG Key ID: 24318A323F309244
2 changed files with 14 additions and 2 deletions

View File

@ -1569,7 +1569,7 @@ void SwitcherData::Start()
{
if (!(th && th->isRunning())) {
stop = false;
switcher->th = QThread::create([]() { switcher->Thread(); });
switcher->th = new SwitcherThread();
switcher->th->start((QThread::Priority)switcher->threadPriority);
}
}
@ -1582,6 +1582,8 @@ void SwitcherData::Stop()
transitionCv.notify_one();
cv.notify_one();
th->wait();
delete th;
th = nullptr;
}
}

View File

@ -253,11 +253,14 @@ struct TimeSwitch {
typedef enum { NO_SWITCH = 0, SWITCH = 1, RANDOM_SWITCH = 2 } NoMatch;
class SwitcherThread;
/********************************************************************************
* SwitcherData
********************************************************************************/
struct SwitcherData {
QThread* th = nullptr;
SwitcherThread *th;
condition_variable cv;
mutex m;
bool transitionActive = false;
@ -482,3 +485,10 @@ struct SwitcherData {
}
inline ~SwitcherData() { Stop(); }
};
extern SwitcherData *switcher;
class SwitcherThread : public QThread {
public:
explicit SwitcherThread(){};
void run() { switcher->Thread(); };
};