diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e860b36b3..47ee10ba6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-07-09 Christopher Faylor + + * sysconf.cc (sysconf): Return processors online rather than bitmask + for _SC_NPROCESSORS_ONLN. + 2003-07-08 Christopher Faylor * cygheap.cc (creturn): Set appropriate errno when out of memory. diff --git a/winsup/cygwin/sysconf.cc b/winsup/cygwin/sysconf.cc index 944afdd41..760208adc 100644 --- a/winsup/cygwin/sysconf.cc +++ b/winsup/cygwin/sysconf.cc @@ -90,7 +90,14 @@ sysconf (int in) case _SC_NPROCESSORS_CONF: return sbi.NumberProcessors; case _SC_NPROCESSORS_ONLN: - return sbi.ActiveProcessors; + { + int i = 0; + do + if (sbi.ActiveProcessors & 1) + i++; + while (sbi.ActiveProcessors >>= 1); + return i; + } case _SC_PHYS_PAGES: return sbi.NumberOfPhysicalPages; case _SC_AVPHYS_PAGES: