summaryrefslogtreecommitdiff
path: root/src/porting.cpp
diff options
context:
space:
mode:
authorkwolekr <mirrorisim@gmail.com>2013-02-17 01:47:49 -0500
committerkwolekr <mirrorisim@gmail.com>2013-02-25 23:08:26 -0500
commit5ec5b1cbd64a22e628be2cf03391883c44074811 (patch)
tree776d209306ce96d543e1b69a9726293e5f5f0fa5 /src/porting.cpp
parent76217939e05bdd8d06fa7113902a74b02deeb915 (diff)
downloadminetest-5ec5b1cbd64a22e628be2cf03391883c44074811.tar.gz
minetest-5ec5b1cbd64a22e628be2cf03391883c44074811.tar.bz2
minetest-5ec5b1cbd64a22e628be2cf03391883c44074811.zip
Add multi-Emerge thread support
Diffstat (limited to 'src/porting.cpp')
-rw-r--r--src/porting.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/porting.cpp b/src/porting.cpp
index 7ad557833..58d71e4aa 100644
--- a/src/porting.cpp
+++ b/src/porting.cpp
@@ -132,6 +132,29 @@ void signal_handler_init(void)
#endif
/*
+ Multithreading support
+*/
+int getNumberOfProcessors() {
+ #if defined(_SC_NPROCESSORS_ONLN)
+ return sysconf(_SC_NPROCESSORS_ONLN);
+ #elif defined(__FreeBSD__) || defined(__APPLE__)
+ unsigned int len, count;
+ len = sizeof(count);
+ return sysctlbyname("hw.ncpu", &count, &len, NULL, 0);
+ #elif defined(_GNU_SOURCE)
+ return get_nprocs();
+ #elif defined(_WIN32)
+ SYSTEM_INFO sysinfo;
+ GetSystemInfo(&sysinfo);
+ return sysinfo.dwNumberOfProcessors;
+ #elif defined(PTW32_VERSION) || defined(__hpux)
+ return pthread_num_processors_np();
+ #else
+ return 1;
+ #endif
+}
+
+/*
Path mangler
*/