Aaron Richton wrote:
On Tue, 10 Nov 2015, Cl?ment OUDOT wrote:
> Could it be a problem on my build machine?
Not directly IMO. Some (older?) pthreads implementations are
PTHREAD_MUTEX_ROBUST_NP, etc.
one thing to try would be:
#ifdef PTHREAD_MUTEX_ROBUST_NP
#define PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_ROBUST_NP
#define pthread_mutexattr_setrobust pthread_mutexattr_setrobust_np
#define pthread_mutex_consistent pthread_mutex_consistent_np
#endif
Unfortunately, PTHREAD_MUTEX_ROBUST_NP is an enum, not a macro, so #ifdef
won't work to detect it.
The attached patch should work. Please report back; I won't merge it unless we
know it actually helps.
which might also need:
|| (rc = pthread_mutexattr_setrobust(&mattr,
PTHREAD_MUTEX_ROBUST))
+ || (rc = pthread_mutexattr_setprotocol(&mattr,
PTHREAD_PRIO_INHERIT))
|| (rc =
pthread_mutex_init(env->me_txns->mti_rmutex, &mattr))
or you can just -DMDB_USE_ROBUST=0, but I don't think the platform is *that*
hopeless...
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/