diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/nproc.c | 14 |
2 files changed, 20 insertions, 0 deletions
@@ -1,5 +1,11 @@ 2009-10-18 Bruno Haible <bruno@clisp.org> + Implement nproc for mingw. + * lib/nproc.c: Include <windows.h> + (num_processors): On native Windows platforms, try GetSystemInfo. + +2009-10-18 Bruno Haible <bruno@clisp.org> + Implement nproc for IRIX. * lib/nproc.c: Include <sys/sysmp.h>. (num_processors): On IRIX systems, try sysmp. diff --git a/lib/nproc.c b/lib/nproc.c index 04a047cfb4..b5a70b193a 100644 --- a/lib/nproc.c +++ b/lib/nproc.c @@ -41,6 +41,11 @@ # include <sys/sysctl.h> #endif +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif + #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) /* Return the total number of processors. The result is guaranteed to @@ -90,5 +95,14 @@ num_processors (void) } #endif +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { /* This works on native Windows platforms. */ + SYSTEM_INFO system_info; + GetSystemInfo (&system_info); + if (0 < system_info.dwNumberOfProcessors) + return system_info.dwNumberOfProcessors; + } +#endif + return 1; } |