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.
After quitting a local Chrome session, two threads (one running
cleanup_async_responses
, and one runningprocess_messages
) continue executing forever. This uses up memory and CPU time. If many sessions are started and quit, all available memory will eventually be consumed.To demonstrate the problem, run this code and keep the Ruby interpreter running:
Observe (for instance, using
top -H
) that 20 threads remain.To fix the problem, I've added exit conditions to the two problematic loops. I'm not sure whether checking the status of
@ws
is the best approach, but it works in my testing.