X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=pshared.c;h=182a36529df70acbd9b254a00444c2eacc02c2c6;hp=e671c87f86bf4f7601192f4ea5b1887d1ad13f12;hb=04525c29025b075f4c1d1220a9705cd4925f4189;hpb=c61d39d9ed1fbe7c8f6522353a847939537a5c4f diff --git a/pshared.c b/pshared.c index e671c87f..182a3652 100644 --- a/pshared.c +++ b/pshared.c @@ -39,6 +39,10 @@ int cond_init_pshared(pthread_cond_t *cond) return 0; } +/* + * 'type' must be a mutex type, e.g. PTHREAD_MUTEX_NORMAL, + * PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE or PTHREAD_MUTEX_DEFAULT. + */ int mutex_init_pshared_with_type(pthread_mutex_t *mutex, int type) { pthread_mutexattr_t mattr; @@ -60,26 +64,24 @@ int mutex_init_pshared_with_type(pthread_mutex_t *mutex, int type) return ret; } #endif - if (type) { - ret = pthread_mutexattr_settype(&mattr, type); - if (ret) { - log_err("pthread_mutexattr_settype: %s\n", - strerror(ret)); - return ret; - } + ret = pthread_mutexattr_settype(&mattr, type); + if (ret) { + log_err("pthread_mutexattr_settype: %s\n", strerror(ret)); + return ret; } ret = pthread_mutex_init(mutex, &mattr); if (ret) { log_err("pthread_mutex_init: %s\n", strerror(ret)); return ret; } + pthread_mutexattr_destroy(&mattr); return 0; } int mutex_init_pshared(pthread_mutex_t *mutex) { - return mutex_init_pshared_with_type(mutex, 0); + return mutex_init_pshared_with_type(mutex, PTHREAD_MUTEX_DEFAULT); } int mutex_cond_init_pshared(pthread_mutex_t *mutex, pthread_cond_t *cond)