diff --git a/src/ScreenReloadSongs.cpp b/src/ScreenReloadSongs.cpp index 1f2528d996..7cd7360355 100644 --- a/src/ScreenReloadSongs.cpp +++ b/src/ScreenReloadSongs.cpp @@ -15,7 +15,7 @@ * computer while songs load. */ REGISTER_SCREEN_CLASS( ScreenReloadSongs ); -ScreenReloadSongs::ScreenReloadSongs() : loadComplete(false) {} +ScreenReloadSongs::ScreenReloadSongs() {} void ScreenReloadSongs::Init() { @@ -35,11 +35,7 @@ void ScreenReloadSongs::Init() ScreenReloadSongs::~ScreenReloadSongs() { - if(!loadComplete) { - //we where going to crash if we let this one lose, so "only" - //leaving stuff possibly corrupted isn't worse. - m_loadingThread.Halt(true); - } + m_loadingThread.Wait(); RemoveChild(loadWin); delete loadWin; } @@ -51,7 +47,6 @@ int ScreenReloadSongs::loadingThreadProc(void *thisAsVoidPtr) { SONGMAN->Reload( false ); SCREENMAN->PostMessageToTopScreen( SM_GoToNextScreen, 0 ); - self->loadComplete=true; return 0; } diff --git a/src/ScreenReloadSongs.h b/src/ScreenReloadSongs.h index 8c145ddfe5..39676e8dff 100644 --- a/src/ScreenReloadSongs.h +++ b/src/ScreenReloadSongs.h @@ -13,7 +13,6 @@ public: virtual void Init(); ~ScreenReloadSongs(); private: - bool loadComplete; InGameLoadingWindow *loadWin; RageThread m_loadingThread; static int loadingThreadProc(void *thisAsVoidPtr);