PolyThreaded.cpp 733 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "PolyThreaded.h"
  2. #include "PolyCore.h"
  3. using namespace Polycode;
  4. Threaded::Threaded() : EventDispatcher() {
  5. threadRunning = true;
  6. scheduledForRemoval = false;
  7. }
  8. void Threaded::killThread() {
  9. threadRunning = false;
  10. }
  11. void Threaded::runThread(){
  12. while(threadRunning) {
  13. updateThread();
  14. }
  15. }
  16. void Threaded::dispatchEvent(Event *event, int eventCode) {
  17. core->lockMutex(eventMutex);
  18. event->setEventCode(eventCode);
  19. eventQueue.push_back(event);
  20. core->unlockMutex(eventMutex);
  21. }
  22. void Threaded::dispatchEventNoDelete(Event *event, int eventCode) {
  23. core->lockMutex(eventMutex);
  24. event->setEventCode(eventCode);
  25. event->deleteOnDispatch = false;
  26. eventQueue.push_back(event);
  27. core->unlockMutex(eventMutex);
  28. }