libCom/osi: use epicsThreadGetCPUs implementation from thread-pool branch (posix, WIN32)
This commit is contained in:
@@ -1110,7 +1110,11 @@ epicsShareFunc void * epicsShareAPI epicsThreadPrivateGet ( epicsThreadPrivateId
|
||||
*/
|
||||
epicsShareFunc int epicsThreadGetCPUs ( void )
|
||||
{
|
||||
return atoi(getenv("NUMBER_OF_PROCESSORS"));
|
||||
SYSTEM_INFO sysinfo;
|
||||
GetSystemInfo(&sysinfo);
|
||||
if (sysinfo.dwNumberOfProcessors > 0)
|
||||
return sysinfo.dwNumberOfProcessors;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef TEST_CODES
|
||||
|
||||
@@ -875,5 +875,16 @@ epicsShareFunc double epicsShareAPI epicsThreadSleepQuantum ()
|
||||
|
||||
epicsShareFunc int epicsThreadGetCPUs(void)
|
||||
{
|
||||
return sysconf(_SC_NPROCESSORS_ONLN);
|
||||
long ret;
|
||||
#ifdef _SC_NPROCESSORS_ONLN
|
||||
ret = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
if (ret > 0)
|
||||
return ret;
|
||||
#endif
|
||||
#ifdef _SC_NPROCESSORS_CONF
|
||||
ret = sysconf(_SC_NPROCESSORS_CONF);
|
||||
if (ret > 0)
|
||||
return ret;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,11 @@ static void thread(void *arg)
|
||||
|
||||
MAIN(epicsThreadTest)
|
||||
{
|
||||
testPlan(8);
|
||||
testPlan(9);
|
||||
|
||||
unsigned int ncpus = epicsThreadGetCPUs();
|
||||
testDiag("System has %u CPUs", ncpus);
|
||||
testOk1(ncpus > 0);
|
||||
|
||||
const int ntasks = 3;
|
||||
myThread *myThreads[ntasks];
|
||||
|
||||
Reference in New Issue
Block a user