mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-13 22:40:29 +02:00
Actually fix the race condition. Can't do any initialization step while waiting.
This commit is contained in:
1 parent
3ae520c35d
commit
a72c4aa383
2 files changed
+10
-6
No files matched your search
+4
-6
@@ -477,11 +477,6 @@ bool PSP_InitStart(const CoreParameter &coreParam, std::string *error_string) {
|
||||
}
|
||||
|
||||
bool PSP_InitUpdate(std::string *error_string) {
|
||||
if (Achievements::IsBlockingExecution()) {
|
||||
// Keep waiting.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pspIsInited || !pspIsIniting) {
|
||||
return true;
|
||||
}
|
||||
@@ -491,7 +486,10 @@ bool PSP_InitUpdate(std::string *error_string) {
|
||||
}
|
||||
|
||||
bool success = !g_CoreParameter.fileToStart.empty();
|
||||
*error_string = g_CoreParameter.errorString;
|
||||
if (!g_CoreParameter.errorString.empty()) {
|
||||
*error_string = g_CoreParameter.errorString;
|
||||
}
|
||||
|
||||
if (success && gpu == nullptr) {
|
||||
PSP_SetLoading("Starting graphics...");
|
||||
Draw::DrawContext *draw = g_CoreParameter.graphicsContext ? g_CoreParameter.graphicsContext->GetDrawContext() : nullptr;
|
||||
|
||||
@@ -233,6 +233,11 @@ bool EmuScreen::bootAllowStorage(const Path &filename) {
|
||||
void EmuScreen::bootGame(const Path &filename) {
|
||||
auto sc = GetI18NCategory(I18NCat::SCREEN);
|
||||
|
||||
if (Achievements::IsBlockingExecution()) {
|
||||
// Keep waiting.
|
||||
return;
|
||||
}
|
||||
|
||||
if (PSP_IsRebooting())
|
||||
return;
|
||||
if (PSP_IsInited()) {
|
||||
@@ -244,6 +249,7 @@ void EmuScreen::bootGame(const Path &filename) {
|
||||
|
||||
if (PSP_IsIniting()) {
|
||||
std::string error_string = "(unknown error)";
|
||||
|
||||
bootPending_ = !PSP_InitUpdate(&error_string);
|
||||
|
||||
if (!bootPending_) {
|
||||
|
||||
Reference in new issue
Block a user