Skip to content

Comments

Fix app crash or freeze on quit#136

Merged
Depal1 merged 1 commit intoPlayCover:masterfrom
XuYicong:gracefully-terminate
Jan 30, 2024
Merged

Fix app crash or freeze on quit#136
Depal1 merged 1 commit intoPlayCover:masterfrom
XuYicong:gracefully-terminate

Conversation

@XuYicong
Copy link
Member

@XuYicong XuYicong commented Dec 23, 2023

Fixes PlayCover/PlayCover/issues/689 and PlayCover/PlayCover/issues/1165

This issue occasionally occurs to Genshin Impact, but always happens for most other games. For example Ni No Kuni and ToF, which have 100% probability of encountering this. With this PR, neither of them crash or freeze anymore.

The root cause of this issue lies in the fact that the app is being forcefully terminated without completing its termination procedures. These procedures may involve ending metal commands and synchronizing data to disk, among other things. In the worst-case scenario, if these termination tasks are not completed successfully, it can result in data corruption and lead to the game crashing upon subsequent launches.

This PR follows the termination procedures here, blocking main thread before all these callbacks end.

This may delay app termination for up to 5 seconds, which is comparable to normal termination time of other macOS apps.

Update: Tested more on Genshin and Honkai Star Rail and works perfectly.

@Depal1 Depal1 merged commit 3711dde into PlayCover:master Jan 30, 2024
@XuYicong XuYicong deleted the gracefully-terminate branch July 12, 2024 17:34
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.

[Bug]: Crash pop-up after closing games

3 participants