Date: Thu, 18 Nov 2010 02:16:06 +0000 (UTC) From: David Xu <davidxu@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r215448 - in user/davidxu/libthr/lib/libthr: . thread Message-ID: <201011180216.oAI2G6TC011249@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011180216.oAI2G6TC011249>