diff options
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/posix/posix_thread.c | 12 | ||||
| -rw-r--r-- | src/platform/windows/win_thread.c | 9 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/platform/posix/posix_thread.c b/src/platform/posix/posix_thread.c index f016ca3f..df2ee9d2 100644 --- a/src/platform/posix/posix_thread.c +++ b/src/platform/posix/posix_thread.c @@ -336,4 +336,16 @@ nni_plat_fini(void) pthread_mutex_unlock(&nni_plat_init_lock); } +int +nni_plat_ncpu(void) +{ + // POSIX specifies sysconf exists, but not the value + // _SC_NPROCESSORS_ONLN. Nonetheless, everybody implements it. + // If you don't we'll assume you only have a single logical CPU. +#ifdef _SC_NPROCESSORS_ONLN + return (sysconf(_SC_NPROCESSORS_ONLN)); +#else + return (1); +#endif +} #endif // NNG_PLATFORM_POSIX diff --git a/src/platform/windows/win_thread.c b/src/platform/windows/win_thread.c index 2e9d58d7..a3d932aa 100644 --- a/src/platform/windows/win_thread.c +++ b/src/platform/windows/win_thread.c @@ -148,6 +148,15 @@ nni_plat_thr_is_self(nni_plat_thr *thr) static LONG plat_inited = 0; int +nni_plat_ncpu(void) +{ + SYSTEM_INFO info; + + GetSystemInfo(&info); + return ((int) (info.dwNumberOfProcessors)); +} + +int nni_plat_init(int (*helper)(void)) { int rv = 0; |
