Commit Graph
5 Commits
Author SHA1 Message Date
mirkobrombin fff01045c8 chore: merge pull request #78 from rayzorben/feat/msys-runtime-start 2026-10-30 06:32:59 +00:00
Raymond Bennett 55b2059107 fix: let NtCreateEvent take object attributes without a name
The Cygwin runtime (MSYS2, which MinGit's tools run on) creates its events
with NtCreateEvent and an OBJECT_ATTRIBUTES that names nothing but sets
inheritance and a security descriptor. Raven refused any attributes with
STATUS_NOT_SUPPORTED, and the runtime spun in Sleep(0) for good (a local
git clone hung this way). Attributes without a name now make an unnamed
event, inheritable with OBJ_INHERIT; a named native event is still not
made here. The object contract test checks both.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the attributes handling and its test checks
(cherry picked from commit 5913f893757d284aeedb0580dc83e30559995126)
2026-10-29 02:02:51 -07:00
Raymond Bennett 593a710833 feat: native waits, sleeps and thread alerts
Zig's standard library waits through ntdll: it sleeps with
NtDelayExecution, parks threads with NtWaitForAlertByThreadId and wakes them
with NtAlertThreadByThreadId, interrupts waits with NtAlertThread, and waits
for its children with an alertable NtWaitForSingleObject. These now run on
the scheduler's waits:

- NtDelayExecution sleeps for a native timeout (100 ns units, negative from
  now, positive a system time, none forever) and answers STATUS_USER_APC
  when it ran APCs and STATUS_ALERTED when the thread was alerted.
- NtAlertThread alerts a thread's alertable native wait; NtTestAlert takes
  the alert and runs the APCs.
- NtWaitForAlertByThreadId and NtAlertThreadByThreadId pair as their
  documentation describes, an alert that comes first being kept.
- NtWaitForSingleObject and NtWaitForMultipleObjects wait as
  WaitForSingleObjectEx and WaitForMultipleObjectsEx do, alertable ones
  included, which the object layer refused; their results are the same
  numbers.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the native wait, sleep and alert functions and the object test change
(cherry picked from commit 44686f355a19520c1c9abb10006adaecee34f114)
2026-10-29 01:30:25 -07:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
Mirko Brombin 154272073d feat: preserve native C++ migration 2026-07-31 16:46:25 +02:00