Delete use of pthread_cond_timedwait_relative_np.

This appears to be a deprecated android function (available only for
__ANDROID_API__ < 21), and it's been reported to cause performance
problems on certain android devices (see bug for details).

Bug: webrtc:8722
Change-Id: I7ef4b6f98c4910246007ce1e262884c84b5f0efa
Reviewed-on: https://webrtc-review.googlesource.com/38700
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21572}
This commit is contained in:
Niels Möller 2018-01-10 15:55:05 +01:00 committed by Commit Bot
parent 10b96ebcad
commit 6f9c01fb58

View File

@ -85,12 +85,6 @@ bool Event::Wait(int milliseconds) {
// Converting from seconds and microseconds (1e-6) plus // Converting from seconds and microseconds (1e-6) plus
// milliseconds (1e-3) to seconds and nanoseconds (1e-9). // milliseconds (1e-3) to seconds and nanoseconds (1e-9).
#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE
// Use relative time version, which tends to be more efficient for
// pthread implementations where provided (like on Android).
ts.tv_sec = milliseconds / 1000;
ts.tv_nsec = (milliseconds % 1000) * 1000000;
#else
struct timeval tv; struct timeval tv;
gettimeofday(&tv, nullptr); gettimeofday(&tv, nullptr);
@ -102,18 +96,12 @@ bool Event::Wait(int milliseconds) {
ts.tv_sec++; ts.tv_sec++;
ts.tv_nsec -= 1000000000; ts.tv_nsec -= 1000000000;
} }
#endif
} }
pthread_mutex_lock(&event_mutex_); pthread_mutex_lock(&event_mutex_);
if (milliseconds != kForever) { if (milliseconds != kForever) {
while (!event_status_ && error == 0) { while (!event_status_ && error == 0) {
#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE
error = pthread_cond_timedwait_relative_np(
&event_cond_, &event_mutex_, &ts);
#else
error = pthread_cond_timedwait(&event_cond_, &event_mutex_, &ts); error = pthread_cond_timedwait(&event_cond_, &event_mutex_, &ts);
#endif
} }
} else { } else {
while (!event_status_ && error == 0) while (!event_status_ && error == 0)