Stop timer in ~EventWindows().
Running out of handles seems to have been an issue when adding another
test target, this should solve it.
BUG=
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2339004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4897 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/system_wrappers/source/event_win.cc b/webrtc/system_wrappers/source/event_win.cc
index d203213..398e714 100644
--- a/webrtc/system_wrappers/source/event_win.cc
+++ b/webrtc/system_wrappers/source/event_win.cc
@@ -23,16 +23,17 @@
}
EventWindows::~EventWindows() {
+ StopTimer();
CloseHandle(event_);
}
bool EventWindows::Set() {
// Note: setting an event that is already set has no effect.
- return SetEvent(event_) == 1 ? true : false;
+ return SetEvent(event_) == 1;
}
bool EventWindows::Reset() {
- return ResetEvent(event_) == 1 ? true : false;
+ return ResetEvent(event_) == 1;
}
EventTypeWrapper EventWindows::Wait(unsigned long max_time) {
@@ -52,6 +53,7 @@
timeKillEvent(timerID_);
timerID_ = NULL;
}
+
if (periodic) {
timerID_ = timeSetEvent(time, 0, (LPTIMECALLBACK)HANDLE(event_), 0,
TIME_PERIODIC | TIME_CALLBACK_EVENT_PULSE);
@@ -60,15 +62,15 @@
TIME_ONESHOT | TIME_CALLBACK_EVENT_SET);
}
- if (timerID_ == NULL) {
- return false;
- }
- return true;
+ return timerID_ != NULL;
}
bool EventWindows::StopTimer() {
- timeKillEvent(timerID_);
- timerID_ = NULL;
+ if (timerID_ != NULL) {
+ timeKillEvent(timerID_);
+ timerID_ = NULL;
+ }
+
return true;
}