summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/thread/thr_mutex.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-06-03 02:21:01 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-06-03 02:21:01 +0000
commitddbadd783dbd30ec2511dad26ab3466cf7ec4c01 (patch)
treefee3eb614ec5a89673b553f6647bedd0be160e28 /lib/libpthread/thread/thr_mutex.c
parentbf60ecbfb2d83cf558792c69ac18ac88f921df71 (diff)
downloadFreeBSD-src-ddbadd783dbd30ec2511dad26ab3466cf7ec4c01.zip
FreeBSD-src-ddbadd783dbd30ec2511dad26ab3466cf7ec4c01.tar.gz
Free memory of internal low level lock when mutex and condition variable
are destroyed. Submitted by: tegge
Diffstat (limited to 'lib/libpthread/thread/thr_mutex.c')
-rw-r--r--lib/libpthread/thread/thr_mutex.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libpthread/thread/thr_mutex.c b/lib/libpthread/thread/thr_mutex.c
index 2df59ef..8d0d76c 100644
--- a/lib/libpthread/thread/thr_mutex.c
+++ b/lib/libpthread/thread/thr_mutex.c
@@ -187,6 +187,8 @@ _pthread_mutex_init(pthread_mutex_t *mutex,
MUTEX_INIT_LINK(pmutex);
*mutex = pmutex;
} else {
+ /* Free the mutex lock structure: */
+ _lock_destroy(&pmutex->m_lock);
free(pmutex);
*mutex = NULL;
}
@@ -235,6 +237,10 @@ _pthread_mutex_destroy(pthread_mutex_t *mutex)
* structure:
*/
MUTEX_ASSERT_NOT_OWNED(m);
+
+ /* Free the mutex lock structure: */
+ _lock_destroy(&m->m_lock);
+
free(m);
}
}
OpenPOWER on IntegriCloud