Index: webrtc/base/event.cc |
diff --git a/webrtc/base/event.cc b/webrtc/base/event.cc |
index a9af20863194c02de5a9234b20966f60089c24ca..0e267dc1ac31a0743613650233229a0e6a12e6d0 100644 |
--- a/webrtc/base/event.cc |
+++ b/webrtc/base/event.cc |
@@ -79,14 +79,13 @@ void Event::Reset() { |
} |
bool Event::Wait(int milliseconds) { |
- pthread_mutex_lock(&event_mutex_); |
int error = 0; |
+ struct timespec ts; |
if (milliseconds != kForever) { |
// Converting from seconds and microseconds (1e-6) plus |
// milliseconds (1e-3) to seconds and nanoseconds (1e-9). |
- struct timespec ts; |
#if HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE |
// Use relative time version, which tends to be more efficient for |
// pthread implementations where provided (like on Android). |
@@ -105,7 +104,10 @@ bool Event::Wait(int milliseconds) { |
ts.tv_nsec -= 1000000000; |
} |
#endif |
+ } |
+ pthread_mutex_lock(&event_mutex_); |
tommi
2016/02/19 16:40:42
There's a slight change in behavior because of thi
|
+ if (milliseconds != kForever) { |
while (!event_status_ && error == 0) { |
#if HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE |
error = pthread_cond_timedwait_relative_np( |