From 56fa18c9d3fc8e817c7bc49cca777b051a8c5ff5 Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 2 Oct 2014 09:42:23 +0000 Subject: * ext/etc/etc.c (etc_nprocessors): Windows support. see [Feature #10267] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/etc/etc.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9dd8fac86b..7f567b0ce2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 2 18:41:45 2014 NAKAMURA Usaku + + * ext/etc/etc.c (etc_nprocessors): Windows support. + see [Feature #10267] + Thu Oct 2 12:21:52 2014 Tanaka Akira * ext/etc/etc.c (etc_nprocessors): New method. diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 2546560713..02f8091b4c 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -891,7 +891,7 @@ io_pathconf(VALUE io, VALUE arg) #define io_pathconf rb_f_notimplement #endif -#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN) +#if (defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)) || defined(_WIN32) /* * Returns the number of online processors. * @@ -912,11 +912,17 @@ etc_nprocessors(VALUE obj) { long ret; +#if !defined(_WIN32) errno = 0; ret = sysconf(_SC_NPROCESSORS_ONLN); if (ret == -1) { rb_sys_fail("sysconf(_SC_NPROCESSORS_ONLN)"); } +#else + SYSTEM_INFO si; + GetSystemInfo(&si); + ret = (long)si.dwNumberOfProcessors; +#endif return LONG2NUM(ret); } #else -- cgit v1.2.3