svn commit: r215448 - in user/davidxu/libthr/lib/libthr: . thread
David Xu
davidxu at FreeBSD.org
Thu Nov 18 02:16:06 UTC 2010
Author: davidxu
Date: Thu Nov 18 02:16:06 2010
New Revision: 215448
URL: http://svn.freebsd.org/changeset/base/215448
Log:
Create new version for following functins:
pthread_barrierattr_setpshared
pthread_condattr_setpshared
pthread_mutexattr_setpshared
pthread_rwlockattr_setpshared
These functions allow PTHREAD_PROCESS_SHARED to be set for attribute
object.
Modified:
user/davidxu/libthr/lib/libthr/pthread.map
user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c
user/davidxu/libthr/lib/libthr/thread/thr_condattr.c
user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c
user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c
Modified: user/davidxu/libthr/lib/libthr/pthread.map
==============================================================================
--- user/davidxu/libthr/lib/libthr/pthread.map Thu Nov 18 02:12:45 2010 (r215447)
+++ user/davidxu/libthr/lib/libthr/pthread.map Thu Nov 18 02:16:06 2010 (r215448)
@@ -26,7 +26,6 @@ FBSD_1.0 {
pthread_barrierattr_destroy;
pthread_barrierattr_getpshared;
pthread_barrierattr_init;
- pthread_barrierattr_setpshared;
pthread_attr_destroy;
pthread_attr_get_np;
pthread_attr_getdetachstate;
@@ -57,7 +56,6 @@ FBSD_1.0 {
pthread_condattr_getpshared;
pthread_condattr_init;
pthread_condattr_setclock;
- pthread_condattr_setpshared;
pthread_create;
pthread_detach;
pthread_equal;
@@ -82,7 +80,6 @@ FBSD_1.0 {
pthread_mutexattr_setkind_np;
pthread_mutexattr_setprioceiling;
pthread_mutexattr_setprotocol;
- pthread_mutexattr_setpshared;
pthread_mutexattr_settype;
pthread_once;
pthread_resume_all_np;
@@ -90,7 +87,6 @@ FBSD_1.0 {
pthread_rwlockattr_destroy;
pthread_rwlockattr_getpshared;
pthread_rwlockattr_init;
- pthread_rwlockattr_setpshared;
pthread_set_name_np;
pthread_self;
pthread_setcancelstate;
@@ -371,14 +367,17 @@ FBSD_1.2 {
pthread_barrier_destroy;
pthread_barrier_init;
pthread_barrier_wait;
+ pthread_barrierattr_setpshared;
pthread_cond_broadcast;
pthread_cond_destroy;
pthread_cond_init;
pthread_cond_signal;
pthread_cond_timedwait;
pthread_cond_wait;
+ pthread_condattr_setpshared;
pthread_mutex_destroy;
pthread_mutexattr_getrobust;
+ pthread_mutexattr_setpshared;
pthread_mutexattr_setrobust;
pthread_mutex_consistent;
pthread_mutex_getprioceiling;
@@ -407,6 +406,7 @@ FBSD_1.2 {
pthread_rwlock_trywrlock;
pthread_rwlock_unlock;
pthread_rwlock_wrlock;
+ pthread_rwlockattr_setpshared;
setcontext;
swapcontext;
};
Modified: user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c
==============================================================================
--- user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c Thu Nov 18 02:12:45 2010 (r215447)
+++ user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c Thu Nov 18 02:16:06 2010 (r215448)
@@ -43,6 +43,10 @@ __weak_reference(_pthread_barrierattr_se
__weak_reference(_pthread_barrierattr_getpshared,
pthread_barrierattr_getpshared);
+int _pthread_barrierattr_setpshared_1_0(pthread_barrierattr_t *, int);
+
+FB10_COMPAT(_pthread_barrierattr_setpshared_1_0, pthread_barrierattr_setpshared);
+
int
_pthread_barrierattr_destroy(pthread_barrierattr_t *attr)
{
@@ -88,6 +92,22 @@ _pthread_barrierattr_setpshared(pthread_
return (EINVAL);
/* Only PTHREAD_PROCESS_PRIVATE is supported. */
+ if (pshared != PTHREAD_PROCESS_PRIVATE &&
+ pshared != PTHREAD_PROCESS_SHARED)
+ return (EINVAL);
+
+ (*attr)->pshared = pshared;
+ return (0);
+}
+
+int
+_pthread_barrierattr_setpshared_1_0(pthread_barrierattr_t *attr, int pshared)
+{
+
+ if (attr == NULL || *attr == NULL)
+ return (EINVAL);
+
+ /* Only PTHREAD_PROCESS_PRIVATE is supported. */
if (pshared != PTHREAD_PROCESS_PRIVATE)
return (EINVAL);
Modified: user/davidxu/libthr/lib/libthr/thread/thr_condattr.c
==============================================================================
--- user/davidxu/libthr/lib/libthr/thread/thr_condattr.c Thu Nov 18 02:12:45 2010 (r215447)
+++ user/davidxu/libthr/lib/libthr/thread/thr_condattr.c Thu Nov 18 02:16:06 2010 (r215448)
@@ -45,6 +45,9 @@ __weak_reference(_pthread_condattr_setcl
__weak_reference(_pthread_condattr_getpshared, pthread_condattr_getpshared);
__weak_reference(_pthread_condattr_setpshared, pthread_condattr_setpshared);
+int _pthread_condattr_setpshared_1_0(pthread_condattr_t *, int);
+FB10_COMPAT(_pthread_condattr_setpshared_1_0, pthread_condattr_setpshared);
+
int
_pthread_condattr_init(pthread_condattr_t *attr)
{
@@ -108,7 +111,7 @@ _pthread_condattr_getpshared(const pthre
if (attr == NULL || *attr == NULL)
return (EINVAL);
- *pshared = PTHREAD_PROCESS_PRIVATE;
+ *pshared = (*attr)->c_pshared;
return (0);
}
@@ -118,7 +121,23 @@ _pthread_condattr_setpshared(pthread_con
if (attr == NULL || *attr == NULL)
return (EINVAL);
+ if (pshared != PTHREAD_PROCESS_PRIVATE &&
+ pshared != PTHREAD_PROCESS_SHARED)
+ return (EINVAL);
+
+ (*attr)->c_pshared = pshared;
+ return (0);
+}
+
+int
+_pthread_condattr_setpshared_1_0(pthread_condattr_t *attr, int pshared)
+{
+ if (attr == NULL || *attr == NULL)
+ return (EINVAL);
+
if (pshared != PTHREAD_PROCESS_PRIVATE)
return (EINVAL);
+
+ (*attr)->c_pshared = pshared;
return (0);
}
Modified: user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c
==============================================================================
--- user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c Thu Nov 18 02:12:45 2010 (r215447)
+++ user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c Thu Nov 18 02:16:06 2010 (r215448)
@@ -84,6 +84,9 @@ __weak_reference(_pthread_mutexattr_setp
__weak_reference(_pthread_mutexattr_getrobust, pthread_mutexattr_getrobust);
__weak_reference(_pthread_mutexattr_setrobust, pthread_mutexattr_setrobust);
+int _pthread_mutexattr_setpshared_1_0(pthread_mutexattr_t *attr, int pshared);
+FB10_COMPAT(_pthread_mutexattr_setpshared_1_0, pthread_mutexattr_setpshared);
+
int
_pthread_mutexattr_init(pthread_mutexattr_t *attr)
{
@@ -179,7 +182,7 @@ _pthread_mutexattr_getpshared(const pthr
if (attr == NULL || *attr == NULL)
return (EINVAL);
- *pshared = PTHREAD_PROCESS_PRIVATE;
+ *pshared = (*attr)->m_pshared;
return (0);
}
@@ -191,9 +194,11 @@ _pthread_mutexattr_setpshared(pthread_mu
return (EINVAL);
/* Only PTHREAD_PROCESS_PRIVATE is supported. */
- if (pshared != PTHREAD_PROCESS_PRIVATE)
+ if (pshared != PTHREAD_PROCESS_PRIVATE &&
+ pshared != PTHREAD_PROCESS_SHARED)
return (EINVAL);
+ (*attr)->m_pshared = pshared;
return (0);
}
@@ -287,3 +292,17 @@ _pthread_mutexattr_setrobust(pthread_mut
}
return (error);
}
+
+int
+_pthread_mutexattr_setpshared_1_0(pthread_mutexattr_t *attr, int pshared)
+{
+ if (attr == NULL || *attr == NULL)
+ return (EINVAL);
+
+ /* Only PTHREAD_PROCESS_PRIVATE is supported. */
+ if (pshared != PTHREAD_PROCESS_PRIVATE)
+ return (EINVAL);
+
+ (*attr)->m_pshared = pshared;
+ return (0);
+}
Modified: user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c
==============================================================================
--- user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c Thu Nov 18 02:12:45 2010 (r215447)
+++ user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c Thu Nov 18 02:16:06 2010 (r215448)
@@ -39,6 +39,9 @@ __weak_reference(_pthread_rwlockattr_get
__weak_reference(_pthread_rwlockattr_init, pthread_rwlockattr_init);
__weak_reference(_pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared);
+int _pthread_rwlockattr_setpshared_1_0(pthread_rwlockattr_t *, int);
+FB10_COMPAT(_pthread_rwlockattr_setpshared_1_0, pthread_rwlockattr_setpshared);
+
int
_pthread_rwlockattr_destroy(pthread_rwlockattr_t *rwlockattr)
{
@@ -61,6 +64,9 @@ int
_pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *rwlockattr,
int *pshared)
{
+ if (rwlockattr == NULL || *rwlockattr == NULL)
+ return (EINVAL);
+
*pshared = (*rwlockattr)->pshared;
return(0);
@@ -89,6 +95,24 @@ _pthread_rwlockattr_init(pthread_rwlocka
int
_pthread_rwlockattr_setpshared(pthread_rwlockattr_t *rwlockattr, int pshared)
{
+ if (rwlockattr == NULL || *rwlockattr == NULL)
+ return (EINVAL);
+
+ if (pshared != PTHREAD_PROCESS_PRIVATE &&
+ pshared != PTHREAD_PROCESS_SHARED)
+ return(EINVAL);
+
+ (*rwlockattr)->pshared = pshared;
+
+ return(0);
+}
+
+int
+_pthread_rwlockattr_setpshared_1_0(pthread_rwlockattr_t *rwlockattr, int pshared)
+{
+ if (rwlockattr == NULL || *rwlockattr == NULL)
+ return (EINVAL);
+
/* Only PTHREAD_PROCESS_PRIVATE is supported. */
if (pshared != PTHREAD_PROCESS_PRIVATE)
return(EINVAL);
More information about the svn-src-user
mailing list