Skip to content

Synchronize shared runtime state and harden startup failures - #27

Merged
Qwejay merged 10 commits into
mainfrom
ponytail/fix-stop-lifecycle
Oct 13, 2026
Merged

Qwejay merged 10 commits into
mainfrom
ponytail/fix-stop-lifecycle

Conversation

@Qwejay

@Qwejay Qwejay commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Protect shared runtime-variable reads/writes and loop counters with a dedicated reentrant lock; use snapshots for substitution and notifications.
  • Protect node/error counters with a dedicated statistics lock and snapshot completion metrics safely.
  • Serialize stop, pause, and resume transitions under the thread lock; stopping now atomically signals workers, releases paused workers, and clears queued nodes.
  • Add run-generation guards so delayed UI cleanup from a completed run cannot reset or hide a newer run.
  • Ensure startup initialization failures reset running, stop, pause, and queue state.
  • Add regression coverage for startup cleanup, variable snapshots, stale callbacks, 40,000 concurrent statistic increments, and stop/pause/resume transitions.

Validation

  • The previous CI run passed source compilation and all 17 regression tests.
  • New stop/pause/resume synchronization tests are now committed; latest CI is pending.
  • Windows GUI, full engine stress, node-by-node, and exported EXE tests remain necessary.

@Qwejay
Qwejay marked this pull request as ready for review October 13, 2026 16:15
@Qwejay
Qwejay merged commit 8bba6e8 into main Oct 13, 2026
2 checks passed
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