Module: xenomai-forge Branch: next Commit: ecc2483637d83eceb992ec192a2795855e85daee URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=ecc2483637d83eceb992ec192a2795855e85daee
Author: Philippe Gerum <r...@xenomai.org> Date: Wed Apr 16 16:55:50 2014 +0200 boilerplate: enable error checking for mutexes in debug mode --- include/boilerplate/lock.h | 6 ++++++ lib/boilerplate/hash.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/include/boilerplate/lock.h b/include/boilerplate/lock.h index 4819b34..879f736 100644 --- a/include/boilerplate/lock.h +++ b/include/boilerplate/lock.h @@ -206,4 +206,10 @@ int __check_cancel_type(const char *locktype); #define read_unlock_safe(__lock, __state) \ __do_unlock_safe(__lock, __state) +#ifdef CONFIG_XENO_DEBUG +#define mutex_type_attribute PTHREAD_MUTEX_ERRORCHECK +#else +#define mutex_type_attribute PTHREAD_MUTEX_NORMAL +#endif + #endif /* _BOILERPLATE_LOCK_H */ diff --git a/lib/boilerplate/hash.c b/lib/boilerplate/hash.c index 32a3d65..04fdeee 100644 --- a/lib/boilerplate/hash.c +++ b/lib/boilerplate/hash.c @@ -101,6 +101,7 @@ void __hash_init(void *heap, struct hash_table *t, t->compare = compare; __RT(pthread_mutexattr_init(&mattr)); + __RT(pthread_mutexattr_settype(&mattr, mutex_type_attribute)); __RT(pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_INHERIT)); __RT(pthread_mutexattr_setpshared(&mattr, mutex_scope_attribute)); __RT(pthread_mutex_init(&t->lock, &mattr)); @@ -322,6 +323,7 @@ void pvhash_init(struct pvhash_table *t, t->compare = compare; __RT(pthread_mutexattr_init(&mattr)); + __RT(pthread_mutexattr_settype(&mattr, mutex_type_attribute)); __RT(pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_INHERIT)); __RT(pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_PRIVATE)); __RT(pthread_mutex_init(&t->lock, &mattr)); _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git