3 #include <cds/os/topology.h>
5 #if CDS_OS_TYPE == CDS_OS_LINUX
10 namespace cds { namespace OS { CDS_CXX11_INLINE_NAMESPACE namespace Linux {
12 unsigned int topology::s_nProcessorCount = 0;
16 long n = ::sysconf( _SC_NPROCESSORS_ONLN );
18 s_nProcessorCount = n;
21 std::ifstream cpuinfo("/proc/cpuinfo");
24 unsigned int nProcCount = 0;
25 while ( !cpuinfo.eof() ) {
26 std::getline(cpuinfo,line);
29 if ( line.find( "processor" ) !=0 )
33 s_nProcessorCount = nProcCount;
35 catch ( std::exception& ex ) {
36 s_nProcessorCount = 1;
43 }}} // namespace cds::OS::Linux
45 #endif // #if CDS_OS_TYPE == CDS_OS_LINUX