summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread/thr_rwlockattr.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2010-10-19 21:02:05 +0000
committerdim <dim@FreeBSD.org>2010-10-19 21:02:05 +0000
commitacc1b913a3297e19f9ffe7d2b7b8a3142926d3b4 (patch)
tree3ba42afae5a4abd129ca596650d0c27112d3953e /lib/libthr/thread/thr_rwlockattr.c
parentba43e0ffe7a883f062e502acf73190ce6534b0fe (diff)
parentf0ce9e3f305fe6039937eade02551429beef30ac (diff)
downloadFreeBSD-src-acc1b913a3297e19f9ffe7d2b7b8a3142926d3b4.zip
FreeBSD-src-acc1b913a3297e19f9ffe7d2b7b8a3142926d3b4.tar.gz
Sync: merge r213992 through r214076 from ^/head.
Diffstat (limited to 'lib/libthr/thread/thr_rwlockattr.c')
-rw-r--r--lib/libthr/thread/thr_rwlockattr.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/libthr/thread/thr_rwlockattr.c b/lib/libthr/thread/thr_rwlockattr.c
index b47d167..23ea73e 100644
--- a/lib/libthr/thread/thr_rwlockattr.c
+++ b/lib/libthr/thread/thr_rwlockattr.c
@@ -36,8 +36,10 @@
__weak_reference(_pthread_rwlockattr_destroy, pthread_rwlockattr_destroy);
__weak_reference(_pthread_rwlockattr_getpshared, pthread_rwlockattr_getpshared);
+__weak_reference(_pthread_rwlockattr_getkind_np, pthread_rwlockattr_getkind_np);
__weak_reference(_pthread_rwlockattr_init, pthread_rwlockattr_init);
__weak_reference(_pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared);
+__weak_reference(_pthread_rwlockattr_setkind_np, pthread_rwlockattr_setkind_np);
int
_pthread_rwlockattr_destroy(pthread_rwlockattr_t *rwlockattr)
@@ -81,6 +83,7 @@ _pthread_rwlockattr_init(pthread_rwlockattr_t *rwlockattr)
return(ENOMEM);
prwlockattr->pshared = PTHREAD_PROCESS_PRIVATE;
+ prwlockattr->kind = PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP;
*rwlockattr = prwlockattr;
return(0);
@@ -98,3 +101,21 @@ _pthread_rwlockattr_setpshared(pthread_rwlockattr_t *rwlockattr, int pshared)
return(0);
}
+int
+_pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr, int kind)
+{
+ if (kind != PTHREAD_RWLOCK_PREFER_READER_NP &&
+ kind != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP &&
+ kind != PTHREAD_RWLOCK_PREFER_WRITER_NP) {
+ return (EINVAL);
+ }
+ (*attr)->kind = kind;
+ return (0);
+}
+
+int
+_pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *attr, int *kind)
+{
+ *kind = (*attr)->kind;
+ return (0);
+}
OpenPOWER on IntegriCloud