mirror of
https://github.com/cocoindex-io/cocoindex-code.git
synced 2026-09-14 16:39:38 +08:00
53d808293f
* fix: make sure daemons are brought down cleanly * chore: be more verbose in pre-commit workflow * fix: split CI workflow to avoid prek output capture deadlock on Windows prek --verbose captures subprocess stdout via pipe. On Windows, the 4KB pipe buffer fills when pytest produces verbose output, causing a deadlock (pytest blocks writing, prek blocks waiting for exit). Split into two steps: prek --skip pytest for lint checks, and pytest running directly for streaming output. Also: - Add OSError catch in _pid_alive for Windows edge cases - Properly shut down daemon thread in test_daemon.py session fixture Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: catch SystemError from os.kill on Windows On Windows, os.kill(pid, 0) raises SystemError when the target process has exited but its handle state is in transition (WinError 87). This corrupts CPython C exception state, causing subsequent built-in calls like time.monotonic() to also raise SystemError. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: avoid os.kill on Windows due to CPython C exception state corruption os.kill(pid, 0) on Windows corrupts CPython C-level exception state even after the raised OSError is caught. This causes subsequent calls to C built-ins (time.monotonic, time.sleep) to raise SystemError. Use ctypes OpenProcess instead, which is the proper Win32 API for checking process existence. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>