Reduce the scope of rtc::Event::Wait() locking.
Reduces contention on event_mutex_ while taking gettimeofday(). Impact highly hypothetical at this point, but less locking is better. BUG= R=tommi@webrtc.org Review URL: https://codereview.webrtc.org/1716563003 . Cr-Commit-Position: refs/heads/master@{#11706}
This commit is contained in:
parent
d1f718bb1e
commit
7ddc9deb4d
@ -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_);
|
||||
if (milliseconds != kForever) {
|
||||
while (!event_status_ && error == 0) {
|
||||
#if HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE
|
||||
error = pthread_cond_timedwait_relative_np(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user