소스 검색

Fix lockup on with 64 cores.

Thanks foi.
Iain Patterson 7 년 전
부모
커밋
caeb3c4a6f
2개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      README.txt
  2. 1 1
      nssm.cpp

+ 1 - 0
README.txt

@@ -1044,6 +1044,7 @@ Thanks to Meang Akira Tanaka for suggestion and initial implementation of
 the statuscode command.
 Thanks to Kirill Kovalenko for reporting a crash with NANO server.
 Thanks to Connor Reynolds for spotting a potential buffer overflow.
+Thanks to foi for spotting a hang with 64 cores.
 
 Licence
 -------

+ 1 - 1
nssm.cpp

@@ -223,7 +223,7 @@ static int elevate(int argc, TCHAR **argv, unsigned long message) {
 int num_cpus() {
   DWORD_PTR i, affinity, system_affinity;
   if (! GetProcessAffinityMask(GetCurrentProcess(), &affinity, &system_affinity)) return 64;
-  for (i = 0; system_affinity & (1LL << i); i++);
+  for (i = 0; system_affinity & (1LL << i); i++) if (i == 64) break;
   return (int) i;
 }