From 7bc5db6666d46939a2b3d81dd8ab980c2e645caf Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sun, 26 Mar 2006 06:48:45 +0000 Subject: [PATCH] This doesn't work: the memory card thread can use Lua, so this deadlocks. Use MemoryCardProfiles instead. --- stepmania/src/MemoryCardManager.cpp | 16 ++++------------ stepmania/src/MemoryCardManager.h | 2 -- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/stepmania/src/MemoryCardManager.cpp b/stepmania/src/MemoryCardManager.cpp index dfe37cf582..5ed00bb805 100644 --- a/stepmania/src/MemoryCardManager.cpp +++ b/stepmania/src/MemoryCardManager.cpp @@ -70,7 +70,7 @@ static const RString MEM_CARD_MOUNT_POINT_INTERNAL[NUM_PLAYERS] = class ThreadedMemoryCardWorker: public RageWorkerThread { public: - ThreadedMemoryCardWorker( bool bInEditScreens ); + ThreadedMemoryCardWorker(); ~ThreadedMemoryCardWorker(); enum MountThreadState @@ -135,11 +135,11 @@ bool ThreadedMemoryCardWorker::StorageDevicesChanged( vector & } -ThreadedMemoryCardWorker::ThreadedMemoryCardWorker( bool bInEditScreens ): +ThreadedMemoryCardWorker::ThreadedMemoryCardWorker(): RageWorkerThread("MemoryCardWorker"), UsbStorageDevicesMutex("UsbStorageDevicesMutex") { - if( g_bMemoryCards || bInEditScreens ) + if( g_bMemoryCards ) m_pDriver = MakeMemoryCardDriver(); else m_pDriver = new MemoryCardDriver_Null; @@ -259,7 +259,7 @@ MemoryCardManager::MemoryCardManager() { ASSERT( g_pWorker == NULL ); - g_pWorker = new ThreadedMemoryCardWorker( false ); + g_pWorker = new ThreadedMemoryCardWorker; m_bCardsLocked = false; FOREACH_PlayerNumber( p ) @@ -296,12 +296,6 @@ MemoryCardManager::~MemoryCardManager() } } -void MemoryCardManager::ResetMemoryCardDriver( bool bInEditScreens ) -{ - SAFE_DELETE(g_pWorker); - g_pWorker = new ThreadedMemoryCardWorker( bInEditScreens ); -} - void MemoryCardManager::Update( float fDelta ) { vector vOld; @@ -715,12 +709,10 @@ public: LunaMemoryCardManager() { LUA->Register( Register ); } static int IsAnyPlayerUsingMemoryCard( T* p, lua_State *L ) { lua_pushboolean(L, ::IsAnyPlayerUsingMemoryCard() ); return 1; } - static int ResetMemoryCardDriver( T* p, lua_State *L ) { p->ResetMemoryCardDriver( BArg(1) ); return 0; } static void Register(lua_State *L) { ADD_METHOD( IsAnyPlayerUsingMemoryCard ); - ADD_METHOD( ResetMemoryCardDriver ); Luna::Register( L ); diff --git a/stepmania/src/MemoryCardManager.h b/stepmania/src/MemoryCardManager.h index bf8f57df5a..fd1f18b4db 100644 --- a/stepmania/src/MemoryCardManager.h +++ b/stepmania/src/MemoryCardManager.h @@ -16,8 +16,6 @@ public: MemoryCardManager(); ~MemoryCardManager(); - void ResetMemoryCardDriver( bool bInEditScreens ); - void Update( float fDelta ); MemoryCardState GetCardState( PlayerNumber pn ) const { return m_State[pn]; }