Merge "Make Condition use CLOCK_MONOTONIC"

am: 7f932afefc

Change-Id: I755d45661ad5575db6dbd3e86f2860e718a6ff0c
This commit is contained in:
Tom Cherry 2017-02-23 22:05:38 +00:00 committed by android-build-merger
commit 36ba2fbef7

View file

@ -86,19 +86,22 @@ private:
#if !defined(_WIN32) #if !defined(_WIN32)
inline Condition::Condition() { inline Condition::Condition() : Condition(PRIVATE) {
pthread_cond_init(&mCond, NULL);
} }
inline Condition::Condition(int type) { inline Condition::Condition(int type) {
pthread_condattr_t attr;
pthread_condattr_init(&attr);
#if defined(__linux__)
pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
#endif
if (type == SHARED) { if (type == SHARED) {
pthread_condattr_t attr;
pthread_condattr_init(&attr);
pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
pthread_cond_init(&mCond, &attr);
pthread_condattr_destroy(&attr);
} else {
pthread_cond_init(&mCond, NULL);
} }
pthread_cond_init(&mCond, &attr);
pthread_condattr_destroy(&attr);
} }
inline Condition::~Condition() { inline Condition::~Condition() {
pthread_cond_destroy(&mCond); pthread_cond_destroy(&mCond);
@ -109,7 +112,7 @@ inline status_t Condition::wait(Mutex& mutex) {
inline status_t Condition::waitRelative(Mutex& mutex, nsecs_t reltime) { inline status_t Condition::waitRelative(Mutex& mutex, nsecs_t reltime) {
struct timespec ts; struct timespec ts;
#if defined(__linux__) #if defined(__linux__)
clock_gettime(CLOCK_REALTIME, &ts); clock_gettime(CLOCK_MONOTONIC, &ts);
#else // __APPLE__ #else // __APPLE__
// Apple doesn't support POSIX clocks. // Apple doesn't support POSIX clocks.
struct timeval t; struct timeval t;