aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHodong <hodong@nimfsoft.art>2024-02-04 10:14:22 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2024-02-04 11:50:56 +0000
commita03f768612ad98a886458197c531a0b92203bf84 (patch)
treeae67bdf2c5dbe910279e64541f7f2cc4ae045f04
parenta67e5e7c9832a4017e97495ec9ff1d6d4f392ca6 (diff)
downloadsrc-a03f768612ad98a886458197c531a0b92203bf84.tar.gz
src-a03f768612ad98a886458197c531a0b92203bf84.zip
libstdthreads: destroy mutexattr in mtx_init()
PR: 276818 MFC after: 1 week
-rw-r--r--lib/libstdthreads/mtx.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libstdthreads/mtx.c b/lib/libstdthreads/mtx.c
index 719ba6486e41..3027a4e48c8d 100644
--- a/lib/libstdthreads/mtx.c
+++ b/lib/libstdthreads/mtx.c
@@ -43,7 +43,7 @@ int
mtx_init(mtx_t *mtx, int type)
{
pthread_mutexattr_t attr;
- int mt;
+ int mt, res;
switch (type) {
case mtx_plain:
@@ -60,11 +60,12 @@ mtx_init(mtx_t *mtx, int type)
if (pthread_mutexattr_init(&attr) != 0)
return (thrd_error);
- if (pthread_mutexattr_settype(&attr, mt) != 0)
- return (thrd_error);
- if (pthread_mutex_init(mtx, &attr) != 0)
- return (thrd_error);
- return (thrd_success);
+ res = thrd_success;
+ if (pthread_mutexattr_settype(&attr, mt) != 0 ||
+ pthread_mutex_init(mtx, &attr) != 0)
+ res = thrd_error;
+ pthread_mutexattr_destroy(&attr);
+ return (res);
}
int