$OpenBSD: patch-Foundation_src_Environment_UNIX_cpp,v 1.1.1.1 2010/07/28 18:13:01 sebastia Exp $ fix use of unavailable sysctlbyname --- Foundation/src/Environment_UNIX.cpp.orig Mon Jul 19 12:13:06 2010 +++ Foundation/src/Environment_UNIX.cpp Mon Jul 19 12:22:52 2010 @@ -128,12 +128,26 @@ std::string EnvironmentImpl::nodeNameImpl() unsigned EnvironmentImpl::processorCountImpl() { #if defined(POCO_OS_FAMILY_BSD) +# if defined(__OpenBSD__) + int mib[2]; + int ncpus = 0; + size_t len = 0; + mib[0] = CTL_HW; + mib[1] = HW_NCPU; /* Get the number of CPU's present */ + len = sizeof(ncpus); + if (sysctl(mib, 2, &ncpus, &len, NULL, 0) != 0) { + printf("Couldn't determine hw.ncpu.\n"); + return 1; /* we have at least 1 cpu... */ + } + return ncpus; +# else unsigned count; std::size_t size = sizeof(count); if (sysctlbyname("hw.ncpu", &count, &size, 0, 0)) return 1; else return count; +# endif #elif POCO_OS == POCO_OS_HPUX return pthread_num_processors_np(); #elif defined(_SC_NPROCESSORS_ONLN)