X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2Ftopology_linux.cpp;h=8ff1cfaa6940a926986b4a755e7d00f81e437a83;hb=e6674a333c7b913717bf8538d9087116f9f36cd4;hp=1715a79d2ce12c19bcdb19fbd54b3d53e887b0bf;hpb=cd515d6402be81b84e2eb0c9d4cf0a1ca9e4d95a;p=libcds.git diff --git a/src/topology_linux.cpp b/src/topology_linux.cpp index 1715a79d..8ff1cfaa 100644 --- a/src/topology_linux.cpp +++ b/src/topology_linux.cpp @@ -1,11 +1,11 @@ /* This file is a part of libcds - Concurrent Data Structures library - (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017 Source code repo: http://github.com/khizmax/libcds/ Download: http://sourceforge.net/projects/libcds/files/ - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -25,15 +25,18 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #if CDS_OS_TYPE == CDS_OS_LINUX +#include +/* #include #include +*/ namespace cds { namespace OS { CDS_CXX11_INLINE_NAMESPACE namespace Linux { @@ -41,16 +44,18 @@ namespace cds { namespace OS { CDS_CXX11_INLINE_NAMESPACE namespace Linux { void topology::init() { + s_nProcessorCount = std::thread::hardware_concurrency(); +/* long n = ::sysconf( _SC_NPROCESSORS_ONLN ); if ( n > 0 ) - s_nProcessorCount = n; + s_nProcessorCount = static_cast( n ); else { try { std::ifstream cpuinfo("/proc/cpuinfo"); std::string line; unsigned int nProcCount = 0; - while ( !cpuinfo.eof() ) { + while ( !cpuinfo.eof()) { std::getline(cpuinfo,line); if (!line.size()) continue; @@ -64,6 +69,7 @@ namespace cds { namespace OS { CDS_CXX11_INLINE_NAMESPACE namespace Linux { s_nProcessorCount = 1; } } +*/ } void topology::fini()