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.
Addresses #265 albeit in a different fashion than I thought it would.
I added timeouts to all the p.communicate calls, currently set to 0.1 seconds as a comfortable default, can easily be search/replaced to a higher or lower timeout (maybe just add a global variable for reference that we can readily change? I didn't want to get too ambitious when I'm not even confident the base change will be accepted)
Gist of what this solves: if something happens to cause the underlying clipboard command to fail, instead of hanging the whole application you get subprocess.TimeoutExpired.
Case where this was coming up was I was writing in Gtk4 and monitoring the clipboard, anytime I would use CTRL+C to copy from a text box it would result in the program hanging and crashing because the keyboard command also got passed through to the underlying process and was interpreted to kill it. This timeout instead just means I get a brief lag and my code can capture the exception to continue on with no issues.