summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2009-06-10 12:54:36 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2009-06-10 12:54:36 +0000
commitd9644cef2d6fd88e84fff860e7f04c4ce8f68ade (patch)
treec6fc933a051d9d085c160e18db722defb170e3d8 /lib
parent6e0f95e01f5dd808dac254c884b6c34bef6cf5d0 (diff)
Notes
Diffstat (limited to 'lib')
-rw-r--r--lib/libkse/kse.map5
-rw-r--r--lib/libkse/thread/thr_mutex.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/libkse/kse.map b/lib/libkse/kse.map
index 94f6dd958188..a6eed6980e67 100644
--- a/lib/libkse/kse.map
+++ b/lib/libkse/kse.map
@@ -256,6 +256,7 @@ FBSDprivate_1.0 {
_pthread_mutex_getprioceiling;
_pthread_mutex_init;
_pthread_mutex_init_calloc_cb;
+ _pthread_mutex_isowned_np;
_pthread_mutex_lock;
_pthread_mutex_setprioceiling;
_pthread_mutex_timedlock;
@@ -360,3 +361,7 @@ FBSDprivate_1.0 {
_thread_state_running;
_thread_state_zoombie;
};
+
+FBSD_1.1 {
+ pthread_mutex_isowned_np;
+};
diff --git a/lib/libkse/thread/thr_mutex.c b/lib/libkse/thread/thr_mutex.c
index fe101c784313..fe733b1643be 100644
--- a/lib/libkse/thread/thr_mutex.c
+++ b/lib/libkse/thread/thr_mutex.c
@@ -36,6 +36,7 @@
#include <sys/param.h>
#include <sys/queue.h>
#include <pthread.h>
+#include <pthread_np.h>
#include "un-namespace.h"
#include "thr_private.h"
@@ -127,6 +128,7 @@ __weak_reference(__pthread_mutex_trylock, pthread_mutex_trylock);
/* No difference between libc and application usage of these: */
__weak_reference(_pthread_mutex_destroy, pthread_mutex_destroy);
__weak_reference(_pthread_mutex_unlock, pthread_mutex_unlock);
+__weak_reference(_pthread_mutex_isowned_np, pthread_mutex_isowned_np);
static int
thr_mutex_init(pthread_mutex_t *mutex,
@@ -1866,3 +1868,12 @@ mutex_queue_enq(pthread_mutex_t mutex, pthread_t pthread)
}
pthread->sflags |= THR_FLAGS_IN_SYNCQ;
}
+
+int
+_pthread_mutex_isowned_np(pthread_mutex_t *mutex)
+{
+ struct pthread *curthread = _get_curthread();
+
+ return ((*mutex)->m_owner == curthread);
+}
+