r920679 introduced a call to pthread_mutex_timedlock, which is not
available on all UNIX variants. In particular, it is missing on Mac OS.
Add a preprocessor check for the relevant feature macro. If it fails,
just use a trylock.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@925940
13f79535-47bb-0310-9956-
ffa450edef68
bool trylock() const { return (0 == pthread_mutex_trylock(&pthread_mutex_)); }
bool timedlock(int64_t milliseconds) const {
+#if defined(_POSIX_TIMEOUTS) && _POSIX_TIMEOUTS >= 200112L
PROFILE_MUTEX_START_LOCK();
struct timespec ts;
PROFILE_MUTEX_NOT_LOCKED();
return false;
+#else
+ // If pthread_mutex_timedlock isn't supported, the safest thing to do
+ // is just do a nonblocking trylock.
+ return trylock();
+#endif
}
void unlock() const {