Просмотр исходного кода

Merge pull request #33471 from Snorch/sysconf-nrprocessors-onln-errno

Do not treat C.sysconf(C._SC_NPROCESSORS_ONLN) non-zero errno as error
Sebastiaan van Stijn 8 лет назад
Родитель
Сommit
8b1adf55c2
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      daemon/stats/collector_unix.go

+ 5 - 1
daemon/stats/collector_unix.go

@@ -72,7 +72,11 @@ func (s *Collector) getSystemCPUUsage() (uint64, error) {
 
 func (s *Collector) getNumberOnlineCPUs() (uint32, error) {
 	i, err := C.sysconf(C._SC_NPROCESSORS_ONLN)
-	if err != nil {
+	// According to POSIX - errno is undefined after successful
+	// sysconf, and can be non-zero in several cases, so look for
+	// error in returned value not in errno.
+	// (https://sourceware.org/bugzilla/show_bug.cgi?id=21536)
+	if i == -1 {
 		return 0, err
 	}
 	return uint32(i), nil