From f44b61c4039571839d446c5c2e7d54ba4f2803ff Mon Sep 17 00:00:00 2001 From: Tianlong Wu Date: Thu, 3 Dec 2015 10:44:38 +0800 Subject: [PATCH 1/2] Fix pthread portability problem --- src/fdcache.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/fdcache.cpp b/src/fdcache.cpp index 399a771..f265b8a 100644 --- a/src/fdcache.cpp +++ b/src/fdcache.cpp @@ -619,7 +619,13 @@ FdEntity::FdEntity(const char* tpath, const char* cpath) try{ pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); +#ifdef PTHREAD_MUTEX_RECURSIVE_NP pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); // recursive mutex +#elif PTHREAD_MUTEX_RECURSIVE + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); // recursive mutex +#else +#error "Either PTHREAD_MUTEX_RECURSIVE_NP or PTHREAD_MUTEX_RECURSIVE must be defined." +#endif pthread_mutex_init(&fdent_lock, &attr); is_lock_init = true; }catch(exception& e){ From 3e655bad3b29c91fd1a2c453f3da82f7dcc445cc Mon Sep 17 00:00:00 2001 From: Tianlong Wu Date: Thu, 3 Dec 2015 13:44:11 +0800 Subject: [PATCH 2/2] PTHREAD_MUTEX_RECURSIVE_NP is a enum not macro --- src/fdcache.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/fdcache.cpp b/src/fdcache.cpp index f265b8a..5a929e6 100644 --- a/src/fdcache.cpp +++ b/src/fdcache.cpp @@ -619,13 +619,7 @@ FdEntity::FdEntity(const char* tpath, const char* cpath) try{ pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); -#ifdef PTHREAD_MUTEX_RECURSIVE_NP - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); // recursive mutex -#elif PTHREAD_MUTEX_RECURSIVE pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); // recursive mutex -#else -#error "Either PTHREAD_MUTEX_RECURSIVE_NP or PTHREAD_MUTEX_RECURSIVE must be defined." -#endif pthread_mutex_init(&fdent_lock, &attr); is_lock_init = true; }catch(exception& e){