Idea: a documented graceful stop for windowless Windows games #83
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
needs measurements
question
testing wanted
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot#83
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The idea
Give an owned windowless Windows game a documented, bounded way to stop and finish its shutdown work, without requiring a forced process kill. Establish what is and is not drained; do not call a process exit a completed save.
itzdaface reported this while testing the co-op draft:
taskkillwithout/fdid not close the windowless games, so he forced them. The relay later removed them as silent rather than receiving a goodbye. Leaving from the visible game's Co-op tab worked. His setup was Windows 11, Ryzen 7 7700X, RTX 3060 12 GB and 32 GB RAM, on the earlier co-op head71d4ab0f.I promised to investigate this separately. That result has not been delivered. The original suggestion was to look at a console handler, but the reported command uses a window-close request: adding a console handler alone must not be presented as a proven fix.
The current Windows host has no explicit console-control handler, and a game without a window still has no window to receive that close request. This is source evidence, not a new Windows reproduction. The command-line session work in pull request 47 provides an owned control/stop route, but does not establish save draining. Co-op pull request 68 carries the original discussion; its socket fixes and Windows fixture results do not settle shutdown behavior.
The investigation should distinguish the supported control command, console events and window-close requests, then exercise the intended path on Windows. For co-op, check whether leaving is sent and the hosted relay/session actually stops. A timeout or forced kill must remain visibly different from successful shutdown.
Anything else
This is separate from the two-player feature and from the proposed crash records. It is not permission to kill arbitrary processes, change the firewall or treat pending saves as safe. Windows runtime testing is still needed; no new shutdown implementation or guarantee is claimed here.
Reported on GitHub as NotRexed/Hookshot#2274; taken on there by mooki.