| 123456789101112131415161718192021222324252627282930313233343536373839 |
- #include "PolyThreaded.h"
- #include "PolyCore.h"
- using namespace Polycode;
- Threaded::Threaded() : EventDispatcher() {
- threadRunning = true;
- scheduledForRemoval = false;
- }
- Threaded::~Threaded() {
- core->removeThread(this);
- }
- void Threaded::killThread() {
- threadRunning = false;
- }
- void Threaded::runThread(){
- while(threadRunning) {
- updateThread();
- }
- }
- void Threaded::dispatchEvent(Event *event, int eventCode) {
- core->lockMutex(eventMutex);
- event->setEventCode(eventCode);
- eventQueue.push_back(event);
- core->unlockMutex(eventMutex);
- }
-
- void Threaded::dispatchEventNoDelete(Event *event, int eventCode) {
- core->lockMutex(eventMutex);
- event->setEventCode(eventCode);
- event->deleteOnDispatch = false;
- eventQueue.push_back(event);
- core->unlockMutex(eventMutex);
- }
|