X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=pshared.c;h=182a36529df70acbd9b254a00444c2eacc02c2c6;hb=0551c57127daf6b3773fed9b471b70a0d983ca59;hp=e671c87f86bf4f7601192f4ea5b1887d1ad13f12;hpb=2f6cbfdcf0ce3b53e83713e3a6b5a0bb6a76a1e9;p=fio.git 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)