-
Notifications
You must be signed in to change notification settings - Fork 486
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
Concurrency Fix #4318
Concurrency Fix #4318
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes #4299.
Is there anything that needs testing for this aside from building seeds until I'm sure cvar crash is gone? |
Not that I can think of. To be fair, I think I need to change the exit and reload locking to utilize the mutex as well before merging, but it's really hard to test either of those things if you're not on a console. The CVar thing was the only one that was very noticeable on PC. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well no CVar crashes in a dozen seeds when I plugged the changes into RefactorGAL while testing it, so that's good enough for me.
And, for the record, after checking, utilizing the mutex in restart and exit shouldn't be necessary. I tried timing both in debug and couldn't get a single crash or corrupted save file as the system stands now. |
I don't know what the exit routines are like for Wii U and Switch closing the app from their menus. It could be a matter of those processes just killing the apps, in which case we might want to add somewhere to quit via the SoH menu instead to ensure save integrity. |
Removed all CVarLoad uses from code to prevent thread concurrency issues.
Also added mutext locking to prevent concurrent save and load operations on the save file.
Build Artifacts