Skip to content

Conversation

@o-sdn-o
Copy link

@o-sdn-o o-sdn-o commented Nov 6, 2025

PR Summary

Fix child processes termination at exit after LoginGraceTime expires.

The fix forces termination of all existing child processes when the session process terminates after LoginGraceTime expires. Child processes are terminated within an atexit() callback when the session process calls exit().

The use of the non-async-signal-safe exit() function is allowed here, because unlike Unix signals that interrupt execution at any point, user-mode APCs (the signal handling model used here) are queued to run when a thread voluntarily enters an alertable state (like SleepEx or WaitForSingleObjectEx).

PR Context

Related to:

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