From 7205189ce31cd2aa65085662af89c9c6d8214980 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Wed, 19 Mar 2014 09:50:51 -0500 Subject: posix: Modified pthread init to use cpuset default. --- cpukit/posix/src/pthread.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c index 512cd70c8f..a688b7e808 100644 --- a/cpukit/posix/src/pthread.c +++ b/cpukit/posix/src/pthread.c @@ -41,6 +41,8 @@ #include #include #include +#include +#include /* * The default pthreads attributes structure. @@ -370,24 +372,18 @@ User_extensions_Control _POSIX_Threads_User_extensions = { void _POSIX_Threads_Manager_initialization(void) { #if defined(__RTEMS_HAVE_SYS_CPUSET_H__) + const CPU_set_Control *affinity; pthread_attr_t *attr; - int i; - int max_cpus = 1; /* Initialize default attribute. */ attr = &_POSIX_Threads_Default_attributes; - /* We do not support a cpu count over CPU_SETSIZE */ - max_cpus = _SMP_Get_processor_count(); - assert( max_cpus <= CPU_SETSIZE ); - - /* Initialize the affinity to be the set of all available CPU's */ + /* Initialize the affinity to be the default cpu set for the system */ + affinity = _CPU_set_Default(); + _Assert( affinity->setsize == sizeof( attr->affinitysetpreallocated ) ); attr->affinityset = &attr->affinitysetpreallocated; - attr->affinitysetsize = sizeof( *attr->affinityset ); - CPU_ZERO_S( attr->affinitysetsize, &attr->affinitysetpreallocated ); - - for (i=0; iaffinitysetsize, attr->affinityset ); + attr->affinitysetsize = affinity->setsize; + CPU_COPY( attr->affinityset, affinity->set ); #endif _Objects_Initialize_information( -- cgit v1.2.3