Changeset fb8e97
- Timestamp:
- 01/09/12 17:40:44 (18 months ago)
- Branches:
- ('master', '668dd99ac278cfd419d67879b141678facea630a')('windows_service_fixes', 'df6bd2788365991d36d5af2a75833b8de2a5860f')
- Children:
- df6bd2788365991d36d5af2a75833b8de2a5860f
- Parents:
- 542d17a45de15d891024fbb5af13ececef77d3ec
- git-author:
- Micke Prag <micke.prag@telldus.se>2012-01-09 17:40:44+01:00
- git-committer:
- Micke Prag <micke.prag@telldus.se>2012-01-09 17:40:44+01:00
- File:
-
- 1 edited
-
telldus-core/service/Timer.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
telldus-core/service/Timer.cpp
r988b44 rfb8e97 1 1 #include "Timer.h" 2 2 #include "Mutex.h" 3 #include "Log.h"4 3 #ifdef _WINDOWS 5 4 #else … … 15 14 bool running; 16 15 #ifdef _WINDOWS 16 HANDLE cond; 17 TelldusCore::Mutex mutex; 17 18 #else 18 19 pthread_mutex_t waitMutex; … … 26 27 d->event = event; 27 28 #ifdef _WINDOWS 29 d->cond = CreateEventW(NULL, false, false, NULL); 28 30 #else 29 31 pthread_cond_init(&d->cond, NULL); … … 50 52 void Timer::stop() { 51 53 #ifdef _WINDOWS 54 TelldusCore::MutexLocker(&d->mutex); 55 d->running = false; 56 SetEvent(d->cond); 52 57 #else 53 58 //Signal event … … 63 68 void Timer::run() { 64 69 #ifdef _WINDOWS 65 sleep(2); //TODO: Implement me 70 int interval = 0; 71 { 72 TelldusCore::MutexLocker(&d->mutex); 73 d->running = true; 74 interval = d->interval*1000; 75 } 76 while(1) { 77 DWORD retval = WaitForSingleObject(d->cond, interval); 78 if (retval == WAIT_TIMEOUT) { 79 d->event->signal(); 80 } 81 TelldusCore::MutexLocker(&d->mutex); 82 if (!d->running) { 83 break; 84 } 85 } 66 86 #else 67 87 struct timespec ts;
Note: See TracChangeset
for help on using the changeset viewer.
