From cfe2924d07dcdcb2314c6911644e6591d092e857 Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Mon, 7 Jan 2019 11:35:31 +0100 Subject: [PATCH] Android: some robustness when quitting application from onDestroy() Make sure there is not pending Pause accumulated, so the the application doesn't remain paused and stucked in onDestroy(). Can be tested by adding: SDLActivity.nativePause(); SDLActivity.nativePause(); mSingleton.finish(); --- src/core/android/SDL_android.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index b9b9b3be92547..7de6b4b1ff81c 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -800,6 +800,10 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeQuit)( /* Inject a SDL_QUIT event */ SDL_SendQuit(); SDL_SendAppEvent(SDL_APP_TERMINATING); + /* Robustness: clear any pending Pause */ + while (SDL_SemTryWait(Android_PauseSem) == 0) { + /* empty */ + } /* Resume the event loop so that the app can catch SDL_QUIT which * should now be the top event in the event queue. */ SDL_SemPost(Android_ResumeSem);