GH-338 allow garbage collection of non-daemon processes #339
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As described in #338 use of
atexit.register
inAsyncAHKProcess
causes a reference to be held for the subprocess. In use cases that make heavy use ofrun_script
or calls withblocking=False
, this can lead to buildup of memory. The rate of growth can be dependent on the size of the value returned by the script and how often it is called.This PR fixes this issue by avoiding the need for
atexit.register
for these two scenarios.atexit.register
is still used for the long-running daemon process to ensure cleanup.