diff options
author | kwolekr <mirrorisim@gmail.com> | 2013-02-17 01:47:49 -0500 |
---|---|---|
committer | kwolekr <mirrorisim@gmail.com> | 2013-02-25 23:08:26 -0500 |
commit | 5ec5b1cbd64a22e628be2cf03391883c44074811 (patch) | |
tree | 776d209306ce96d543e1b69a9726293e5f5f0fa5 /src/porting.cpp | |
parent | 76217939e05bdd8d06fa7113902a74b02deeb915 (diff) | |
download | minetest-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.cpp | 23 |
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 */ |