aboutsummaryrefslogtreecommitdiff
path: root/src/zencompute/runners/windowsrunner.cpp
Commit message (Collapse)AuthorAgeFilesLines
* made sure we used the PID consistently in loggingStefan Boberg14 hours1-7/+8
|
* Consolidate action map locks and fix immediate query visibilityStefan Boberg26 hours1-1/+8
| | | | | | | | | | | | | | | | Replace three separate RwLocks (m_PendingLock, m_RunningLock, m_ResultsLock) with a single m_ActionMapLock guarding all three action maps. This eliminates lock-ordering requirements and prevents actions from being temporarily absent from all maps during state transitions. Additionally, insert actions into m_PendingActions immediately during EnqueueResolvedAction so they are visible to GetActionResult and FindActionResult right away, without waiting for the scheduler thread to process the update. Previously, eager clients could get a spurious 404 if they queried before the scheduler's HandleActionUpdates ran. Also adds debug logging for worker manifest, process launch and exit on Windows, and ANSI color helper macros for log formatting.
* Add crash handling tests and suppress crash dialogs via job objectsStefan Boberg2 days1-1/+40
| | | | | | | | | | | | | | | | | | - Add "Crash" function to zentest-appstub with two modes: "abort" (std::abort) and "nullptr" (null pointer dereference) for testing hard process crashes - Add job object to WindowsProcessRunner that assigns all child processes, configured with: - JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION to suppress WER dialogs - JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE for cleanup on runner teardown - JOB_OBJECT_UILIMIT_ERRORMODE to prevent children from clearing the inherited SEM_NOGPFAULTERRORBOX error mode - Create child processes suspended so job assignment takes effect before any code runs - Add three new test cases: - crash.abort: std::abort() results in failed action - crash.nullptr: null pointer dereference results in failed action - crash.auto_retry: crashed actions are retried correctly
* compute orchestration (#763)Stefan Boberg2026-03-041-0/+460
- Added local process runners for Linux/Wine, Mac with some sandboxing support - Horde & Nomad provisioning for development and testing - Client session queues with lifecycle management (active/draining/cancelled), automatic retry with configurable limits, and manual reschedule API - Improved web UI for orchestrator, compute, and hub dashboards with WebSocket push updates - Some security hardening - Improved scalability and `zen exec` command Still experimental - compute support is disabled by default