diff options
author | Benoit Foucher <benoit@zeroc.com> | 2007-08-28 14:50:28 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2007-08-28 14:50:28 +0200 |
commit | 624d8ebe9e884cd3f4bdca4dde2f52582c0e0429 (patch) | |
tree | c0c2ca846f2acfee09db083370d5444a840f6e07 /cpp | |
parent | Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff) | |
download | ice-624d8ebe9e884cd3f4bdca4dde2f52582c0e0429.tar.bz2 ice-624d8ebe9e884cd3f4bdca4dde2f52582c0e0429.tar.xz ice-624d8ebe9e884cd3f4bdca4dde2f52582c0e0429.zip |
Win32 fixes for IceUtil::Timer
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/IceUtil/Timer.h | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | cpp/src/IceUtil/Timer.cpp | 4 | ||||
-rw-r--r-- | cpp/test/IceUtil/timer/Client.cpp | 15 |
3 files changed, 13 insertions, 10 deletions
diff --git a/cpp/include/IceUtil/Timer.h b/cpp/include/IceUtil/Timer.h index da5cb38054f..347b3bf464e 100644 --- a/cpp/include/IceUtil/Timer.h +++ b/cpp/include/IceUtil/Timer.h @@ -28,7 +28,7 @@ typedef IceUtil::Handle<Timer> TimerPtr; // Extend the TimerTask class and override the run() method to execute // code at a specific time or repeatedly. // -class TimerTask : public IceUtil::Shared +class ICE_UTIL_API TimerTask : public IceUtil::Shared { public: @@ -45,7 +45,7 @@ typedef IceUtil::Handle<TimerTask> TimerTaskPtr; // repeated execution. Tasks are executed by the dedicated timer thread // sequentially. // -class Timer : public virtual IceUtil::Shared, private virtual IceUtil::Thread +class ICE_UTIL_API Timer : public virtual IceUtil::Shared, private virtual IceUtil::Thread { public: diff --git a/cpp/src/IceUtil/Timer.cpp b/cpp/src/IceUtil/Timer.cpp index d44534a82cd..9b3d7b0c852 100644..100755 --- a/cpp/src/IceUtil/Timer.cpp +++ b/cpp/src/IceUtil/Timer.cpp @@ -100,16 +100,16 @@ Timer::cancel(const TimerTaskPtr& task) { return false; } - _tasks.erase(p); #if defined(_MSC_VER) && (_MSC_VER < 1300) Token token; token.scheduledTime = p->second; - token.task = task = p->first; + token.task = p->first; #else Token token = { p->second, IceUtil::Time(), p->first }; #endif _tokens.erase(token); + _tasks.erase(p); return true; } diff --git a/cpp/test/IceUtil/timer/Client.cpp b/cpp/test/IceUtil/timer/Client.cpp index 013e33277e1..39747aff8ba 100644 --- a/cpp/test/IceUtil/timer/Client.cpp +++ b/cpp/test/IceUtil/timer/Client.cpp @@ -19,11 +19,11 @@ class TestTask : public IceUtil::TimerTask, IceUtil::Monitor<IceUtil::Mutex> { public: - TestTask() + TestTask() : _count(0) { } - TestTask(const IceUtil::Time& scheduledTime) : _scheduledTime(scheduledTime) + TestTask(const IceUtil::Time& scheduledTime) : _scheduledTime(scheduledTime), _count(0) { } @@ -123,12 +123,13 @@ int main(int argc, char* argv[]) random_shuffle(tasks.begin(), tasks.end()); - for(vector<TestTaskPtr>::const_iterator p = tasks.begin(); p != tasks.end(); ++p) + vector<TestTaskPtr>::const_iterator p; + for(p = tasks.begin(); p != tasks.end(); ++p) { timer->schedule(*p, (*p)->getScheduledTime()); } - for(vector<TestTaskPtr>::const_iterator p = tasks.begin(); p != tasks.end(); ++p) + for(p = tasks.begin(); p != tasks.end(); ++p) { (*p)->waitForRun(); } @@ -136,7 +137,7 @@ int main(int argc, char* argv[]) test(IceUtil::Time::now() - start > IceUtil::Time::milliSeconds(99)); sort(tasks.begin(), tasks.end()); - for(vector<TestTaskPtr>::const_iterator p = tasks.begin(); p + 1 != tasks.end(); ++p) + for(p = tasks.begin(); p + 1 != tasks.end(); ++p) { if((*p)->getRunTime() > (*(p + 1))->getRunTime()) { @@ -149,7 +150,9 @@ int main(int argc, char* argv[]) TestTaskPtr task = new TestTask(); timer->scheduleRepeated(task, IceUtil::Time::milliSeconds(20)); IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500)); - test(task->hasRun() && task->getCount() > 15 && task->getCount() < 26); + test(task->hasRun()); + test(task->getCount() > 15); + test(task->getCount() < 26); test(timer->cancel(task)); int count = task->getCount(); IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100)); |