diff options
| author | Simon Marlow <marlowsd@gmail.com> | 2009-03-17 09:33:09 +0000 |
|---|---|---|
| committer | Simon Marlow <marlowsd@gmail.com> | 2009-03-17 09:33:09 +0000 |
| commit | 0ee0be109fd00ec629f7a2ad6a597885a0c9d5b4 (patch) | |
| tree | f34e7ebeb8ff40299745b169c4ca4b7bed4b2c54 /rts/posix/OSThreads.c | |
| parent | 8844513929ccd58854227ddb6275095a1f1742ad (diff) | |
| download | haskell-0ee0be109fd00ec629f7a2ad6a597885a0c9d5b4.tar.gz | |
Add getNumberOfProcessors(), FIX MacOS X build problem (hopefully)
Somebody needs to implement getNumberOfProcessors() for MacOS X,
currently it will return 1.
Diffstat (limited to 'rts/posix/OSThreads.c')
| -rw-r--r-- | rts/posix/OSThreads.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c index 6e01f82553..6eb2d2bc8e 100644 --- a/rts/posix/OSThreads.c +++ b/rts/posix/OSThreads.c @@ -179,6 +179,24 @@ forkOS_createThread ( HsStablePtr entry ) return result; } +nat +getNumberOfProcessors (void) +{ + static nat nproc = 0; + + if (nproc == 0) { +#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN) + nproc = sysconf(_SC_NPROCESSORS_ONLN); +#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_CONF) + nproc = sysconf(_SC_NPROCESSORS_CONF); +#else + nproc = 1; +#endif + } + + return nproc; +} + #else /* !defined(THREADED_RTS) */ int |
