[lit] Bump up the Windows process cap from 32 to 60
authorArthur Eubanks <aeubanks@google.com>
Sat, 8 May 2021 01:11:21 +0000 (18:11 -0700)
committerArthur Eubanks <aeubanks@google.com>
Sat, 8 May 2021 01:13:38 +0000 (18:13 -0700)
At 61 or over, I see messages like

  File "...\Python\Python39\lib\multiprocessing\connection.py", line 816, in _exhaustive_wait
    res = _winapi.WaitForMultipleObjects(L, False, timeout)

  ValueError: need at most 63 handles, got a sequence of length 64

60 seems to work for me.

If this causes issues for anybody else, feel free to revert.

llvm/utils/lit/lit/util.py

index 0d8f004..b02cf28 100644 (file)
@@ -120,10 +120,10 @@ def usable_core_count():
     except AttributeError:
         n = os.cpu_count() or 1
 
-    # On Windows, with more than 32 processes, process creation often fails with
-    # "Too many open files".  FIXME: Check if there's a better fix.
+    # On Windows with more than 60 processes, multiprocessing's call to
+    # _winapi.WaitForMultipleObjects() prints an error and lit hangs.
     if platform.system() == 'Windows':
-        return min(n, 32)
+        return min(n, 60)
 
     return n