Browse Source

Fix lockup on with 64 cores.

Thanks foi.
Iain Patterson 4 years ago
parent
commit
caeb3c4a6f
2 changed files with 2 additions and 1 deletions
  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;
 }