blob: 228a574ebb1cbb887d0958e2a0bda45510555857 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include "engine/engineworker.h"
#include "engine/engineworkerscheduler.h"
#include "moc_engineworker.cpp"
EngineWorker::EngineWorker()
: m_pScheduler(nullptr) {
m_notReady.test_and_set();
}
EngineWorker::~EngineWorker() {
}
void EngineWorker::run() {
}
void EngineWorker::setScheduler(EngineWorkerScheduler* pScheduler) {
DEBUG_ASSERT(m_pScheduler == nullptr);
m_pScheduler = pScheduler;
pScheduler->addWorker(this);
}
void EngineWorker::workReady() {
m_notReady.clear();
VERIFY_OR_DEBUG_ASSERT(m_pScheduler) {
return;
}
m_pScheduler->workerReady();
}
void EngineWorker::wakeIfReady() {
if (!m_notReady.test_and_set()) {
m_semaRun.release();
}
}
|