summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-10-06 08:55:51 +0200
committerRémi Verschelde <rverschelde@gmail.com>2022-10-06 08:55:51 +0200
commitc2c9a582da8221eea5292620c74f96322899f0cb (patch)
tree0cc7f02772516b8c76f08436ee18224c0e0f9ede
parenta47f9bd53aa66b6a4a3150e1910456aec463e3df (diff)
parent6bf02c016236c2d79b3e8cf10cfb580157535e5f (diff)
Merge pull request #64815 from RandomShaper/default_cpu_count
Improve default `OS`'s CPU count getter
-rw-r--r--core/os/os.cpp3
-rw-r--r--drivers/unix/os_unix.cpp4
-rw-r--r--drivers/unix/os_unix.h2
-rw-r--r--platform/windows/os_windows.cpp11
-rw-r--r--platform/windows/os_windows.h1
5 files changed, 2 insertions, 19 deletions
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 72d68893f3..bbb2a94fe7 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -38,6 +38,7 @@
#include "core/version_generated.gen.h"
#include <stdarg.h>
+#include <thread>
OS *OS::singleton = nullptr;
uint64_t OS::target_ticks = 0;
@@ -321,7 +322,7 @@ String OS::get_unique_id() const {
}
int OS::get_processor_count() const {
- return 1;
+ return std::thread::hardware_concurrency();
}
String OS::get_processor_name() const {
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index 748b48d316..10d65b83db 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -500,10 +500,6 @@ bool OS_Unix::set_environment(const String &p_var, const String &p_value) const
return setenv(p_var.utf8().get_data(), p_value.utf8().get_data(), /* overwrite: */ true) == 0;
}
-int OS_Unix::get_processor_count() const {
- return sysconf(_SC_NPROCESSORS_CONF);
-}
-
String OS_Unix::get_user_data_dir() const {
String appname = get_safe_dir_name(ProjectSettings::get_singleton()->get("application/config/name"));
if (!appname.is_empty()) {
diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h
index ce81ca0aca..fce962e32c 100644
--- a/drivers/unix/os_unix.h
+++ b/drivers/unix/os_unix.h
@@ -84,8 +84,6 @@ public:
virtual bool set_environment(const String &p_var, const String &p_value) const override;
virtual String get_locale() const override;
- virtual int get_processor_count() const override;
-
virtual void initialize_debugging() override;
virtual String get_executable_path() const override;
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 1978ec5ab6..6d1a1f76c3 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -870,17 +870,6 @@ BOOL is_wow64() {
return wow64;
}
-int OS_Windows::get_processor_count() const {
- SYSTEM_INFO sysinfo;
- if (is_wow64()) {
- GetNativeSystemInfo(&sysinfo);
- } else {
- GetSystemInfo(&sysinfo);
- }
-
- return sysinfo.dwNumberOfProcessors;
-}
-
String OS_Windows::get_processor_name() const {
const String id = "Hardware\\Description\\System\\CentralProcessor\\0";
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index 419871f8bf..b792f6fa44 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -175,7 +175,6 @@ public:
virtual String get_locale() const override;
- virtual int get_processor_count() const override;
virtual String get_processor_name() const override;
virtual uint64_t get_embedded_pck_offset() const override;