diff --git a/src/os/unix/unix.cpp b/src/os/unix/unix.cpp --- a/src/os/unix/unix.cpp +++ b/src/os/unix/unix.cpp @@ -340,9 +340,18 @@ uint GetCPUCoreCount() int ncpu = 0; size_t len = sizeof(ncpu); +#ifdef OPENBSD + int name[2]; + name[0] = CTL_HW; + name[1] = HW_NCPU; + if (sysctl(name, 2, &ncpu, &len, NULL, 0) < 0) { + ncpu = 0; + } +#else if (sysctlbyname("hw.availcpu", &ncpu, &len, NULL, 0) < 0) { sysctlbyname("hw.ncpu", &ncpu, &len, NULL, 0); } +#endif /* #ifdef OPENBSD */ if (ncpu > 0) count = ncpu; #elif defined(_SC_NPROCESSORS_ONLN)