From 0a8cd661bb23bcf037db2245a9d1e1c1324faad9 Mon Sep 17 00:00:00 2001 From: dborth Date: Tue, 13 Apr 2010 05:18:24 +0000 Subject: [PATCH] fix some possible hangs --- source/fileop.cpp | 1 + source/menu.cpp | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/source/fileop.cpp b/source/fileop.cpp index ab22063..3ee86d9 100644 --- a/source/fileop.cpp +++ b/source/fileop.cpp @@ -866,6 +866,7 @@ SaveFile (char * buffer, char *filepath, size_t datasize, bool silent) if(!written) { unmountRequired[device] = true; + if(silent) break; retry = ErrorPromptRetry("Error saving file!"); } } diff --git a/source/menu.cpp b/source/menu.cpp index 708983d..f4b072f 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -1384,10 +1384,12 @@ static int MenuGame() #endif w.SetEffect(EFFECT_FADE, 15); - AutoSave(); } ResumeGui(); + + if(lastMenu == MENU_NONE) + AutoSave(); while(menu == MENU_NONE) { @@ -3982,10 +3984,6 @@ MainMenu (int menu) ShutoffRumble(); #endif - // wait for keys to be depressed - while(MenuRequested()) - usleep(100); - CancelAction(); HaltGui(); @@ -4030,4 +4028,11 @@ MainMenu (int menu) free(gameScreenTex2); gameScreenTex2 = NULL; } + + // wait for keys to be depressed + while(MenuRequested()) + { + UpdatePads(); + usleep(THREAD_SLEEP); + } }