Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix unable to close / exit the application until the application "init" phase finishes #112

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Kami
Copy link

@Kami Kami commented Jan 24, 2020

Problem Description

Right now when you start the app, two non-daemon / "blocking" threads are started - check ffmpeg and "init casts".

Those two threads "block" the main GUI loop which means if you press CTRL+C / "x" button, application won't exit until those two threads finish.

Init casts thread discovers Chromecasts on the local network which means it can take quite a while to finish and as mentioned above, you can't "gracefully" exit / close the application until it finishes.

Proposed Solution

This pull request fixes that by making those two threads daemon threads.

This means CTRL + C / "x" button will work as expected and the application will exit immediately.

There are also other possible approaches, but this one is the simplest and less invasive with the correct end result.

loop.

Previously, if you pressed CTRL+C or exit before those threads finished
(aka before all the chromecasts were discovered on the local network)
the application would block and only exit when the chromecast
discovery finished.

This pull request fixes that by making those two threads daemon threads.
This way they don't block the main GUI thread, but everything still
works as it should.
thread approach to solve the blocked UI / main thread issue.
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