-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
IINA stopped responding after quit clicked #4310
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
Comments
I have seen this happen a couple of times too, but only while running via XCode, so wasn't sure whether it was caused by XCode or its debugger. |
Catching me before I have fully analyzed this one, but I suspect it is due to an issue you pointed out, that mpv sends a bunch of events when stopping that we should not be processing. I will be looking into whether this is a delayed forced drawing in reaction to one of those events. |
This commit will: - Change MPVController to call PlayerCore when certain properties change - Add checking for shutting down before processing property changes - Change MPVController.handlePropertyChange to use the value passed in the event for the property idleActive - Move setting of the PlayerCore properties isStopping and isStopped to the openMainWindow method Once the asynchronous quit command has been sent to mpv IINA must not call certain mpv methods. This is a mpv requirement. Violating this requirement can result in crashes. Because mpv will still emit property change events the burden is on IINA to know that mpv has been told to quit and the property change events should not be processed. This commit moves code in MPVController that was calling various PlayerCore methods into PlayerCore and adds checks to ignore the property changes if IINA is shutting down the mpv core.
This commit will: - Change MPVController to call PlayerCore when certain properties change - Add checking for shutting down before processing property changes - Change MPVController.handlePropertyChange to use the value passed in the event for the property idleActive - Move setting of the PlayerCore properties isStopping and isStopped to the openMainWindow method Once the asynchronous quit command has been sent to mpv IINA must not call certain mpv methods. This is a mpv requirement. Violating this requirement can result in crashes. Because mpv will still emit property change events the burden is on IINA to know that mpv has been told to quit and the property change events should not be processed. This commit moves code in MPVController that was calling various PlayerCore methods into PlayerCore and adds checks to ignore the property changes if IINA is shutting down the mpv core.
This commit will: - Change MPVController to call PlayerCore when certain properties change - Add checking for shutting down before processing property changes - Change MPVController.handlePropertyChange to use the value passed in the event for the property idleActive - Move setting of the PlayerCore properties isStopping and isStopped to the openMainWindow method Once the asynchronous quit command has been sent to mpv IINA must not call certain mpv methods. This is a mpv requirement. Violating this requirement can result in crashes. Because mpv will still emit property change events the burden is on IINA to know that mpv has been told to quit and the property change events should not be processed. This commit moves code in MPVController that was calling various PlayerCore methods into PlayerCore and adds checks to ignore the property changes if IINA is shutting down the mpv core.
System and IINA version:
Expected behavior:
After clicking on
Quit IINA
under theIINA
menu the application terminates.Actual behavior:
Rarely after clicking on
Quit IINA
IINA does not terminate and becomes unresponsive.quit-hang-process-sample.txt
Steps to reproduce:
Click on
Quit IINA
under theIINA
menu while a video is playing.Unknown.
How often does this happen?
Rarely. Very difficult to reproduce. First time I have seen this.
The text was updated successfully, but these errors were encountered: