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