diff options
| author | Tom Cherry <tomcherry@google.com> | 2017-02-23 22:09:39 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-02-23 22:09:39 +0000 |
| commit | 917cca2f04a88c1b307e9a4b75582ca9ecf34444 (patch) | |
| tree | 9e1b9b63b775c6b26c6603e3ff5d410794fd0fa2 /libutils/include | |
| parent | bb5a8380b0e35d3b7ac45ccf326fed130f0beb89 (diff) | |
| parent | 83f76a20a89f7a84fb6a3cf40f0628ca245e0617 (diff) | |
| download | system_core-917cca2f04a88c1b307e9a4b75582ca9ecf34444.tar.gz system_core-917cca2f04a88c1b307e9a4b75582ca9ecf34444.tar.bz2 system_core-917cca2f04a88c1b307e9a4b75582ca9ecf34444.zip | |
Merge "Make Condition use CLOCK_MONOTONIC" am: 7f932afefc am: 36ba2fbef7
am: 83f76a20a8
Change-Id: I214548f856db2826b7a4ea96a98950fee7d20a27
Diffstat (limited to 'libutils/include')
| -rw-r--r-- | libutils/include/utils/Condition.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/libutils/include/utils/Condition.h b/libutils/include/utils/Condition.h index 25a53aa23..2c80acd5c 100644 --- a/libutils/include/utils/Condition.h +++ b/libutils/include/utils/Condition.h @@ -86,19 +86,22 @@ private: #if !defined(_WIN32) -inline Condition::Condition() { - pthread_cond_init(&mCond, NULL); +inline Condition::Condition() : Condition(PRIVATE) { } 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) { - pthread_condattr_t attr; - pthread_condattr_init(&attr); 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() { 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) { struct timespec ts; #if defined(__linux__) - clock_gettime(CLOCK_REALTIME, &ts); + clock_gettime(CLOCK_MONOTONIC, &ts); #else // __APPLE__ // Apple doesn't support POSIX clocks. struct timeval t; |
