Skip to content

tidy: msgq Windows support (review copy) - #3

Closed
AmyJeanes wants to merge 3 commits into
windows-basefrom
windows-tidy
Closed

tidy: msgq Windows support (review copy)#3
AmyJeanes wants to merge 3 commits into
windows-basefrom
windows-tidy

Conversation

@AmyJeanes

@AmyJeanes AmyJeanes commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Review copy of the Windows series rebased onto the line-ending branch and neatened: shared ipc_connect/ipc_bind and poll on every platform, one msgq_poll deadline loop with only the wait primitive per platform, MSG_WAITALL framing, setenv shims, shorter setup/test scripts and CI matrix. The os.environ mirroring commit moved to windows-followups (only openpilot's process replay needs it). Fork-internal, runs CI only.

@AmyJeanes
AmyJeanes force-pushed the windows-tidy branch 4 times, most recently from fbd1656 to 381b5b3 Compare September 9, 2026 04:42
AmyJeanes and others added 3 commits September 9, 2026 18:14
Queues and fake-event state are named sections (no /dev/shm; a queue file
that is only mapped cannot be swept). Readers wait on a per-thread event
that publishers signal by thread id, in place of SIGUSR2, through the one
deadline loop msgq_poll now uses everywhere; fake events are named events
instead of FIFOs. visionipc duplicates section handles into the peer over
AF_UNIX stream sockets, the Windows form of SCM_RIGHTS; sockets close via
ipc_close(), and setenv/unsetenv are shimmed. Tests close their queues and
time with perf_counter; msgq_shm_dir() replaces the /dev/shm vs /tmp ladders.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AgqYZYWLpwE2T5vS3nVEt
Python imports extension modules as .pyd on Windows. The cython tool
renames the .so targets the SConscripts declare, so neither they nor a
SConstruct that loads the tool has to know.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AgqYZYWLpwE2T5vS3nVEt
SCons takes the mingw tool with clang (the default picks MSVC), links
libc++ statically so the binaries run outside the shell, and winsock for
visionipc's sockets; setup.py copies the .pyd. setup.sh pins uv to a
native CPython, MSYS2's own python being first on PATH; test.sh addresses
the venv directory, not bin/python, so Scripts/ works too. CI gains a
windows-latest entry in the CLANG64 shell, with five minutes for ./test.sh
on the 4-core runner.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AgqYZYWLpwE2T5vS3nVEt
@AmyJeanes
AmyJeanes changed the base branch from windows-eol to windows-base September 9, 2026 17:14
@AmyJeanes AmyJeanes closed this Sep 9, 2026
@AmyJeanes
AmyJeanes deleted the windows-tidy branch September 9, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant