From: Glenn M. <gma...@us...> - 2006-10-31 01:23:27
|
Update of /cvsroot/stepmania/stepmania/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5115 Modified Files: LuaManager.cpp LuaManager.h Log Message: move lock into pImpl Index: LuaManager.cpp =================================================================== RCS file: /cvsroot/stepmania/stepmania/src/LuaManager.cpp,v retrieving revision 1.173 retrieving revision 1.174 diff -u -d -p -r1.173 -r1.174 --- LuaManager.cpp 29 Oct 2006 20:52:25 -0000 1.173 +++ LuaManager.cpp 31 Oct 2006 01:23:25 -0000 1.174 @@ -19,8 +19,11 @@ LuaManager *LUA = NULL; struct Impl { + Impl(): g_pLock("Lua") {} vector<lua_State *> g_FreeStateList; map<lua_State *, bool> g_ActiveStates; + + RageMutex g_pLock; }; static Impl *pImpl = NULL; static LuaFunctionList *g_LuaFunctions = NULL; @@ -165,8 +168,6 @@ LuaManager::LuaManager() pImpl = new Impl; LUA = this; // so that LUA is available when we call the Register functions - m_pLock = new RageMutex( "Lua" ); - lua_State *L = lua_open(); ASSERT( L ); @@ -190,16 +191,15 @@ LuaManager::LuaManager() LuaManager::~LuaManager() { lua_close( m_pLuaMain ); - delete m_pLock; SAFE_DELETE( pImpl ); } Lua *LuaManager::Get() { bool bLocked = false; - if( !m_pLock->IsLockedByThisThread() ) + if( !pImpl->g_pLock.IsLockedByThisThread() ) { - m_pLock->Lock(); + pImpl->g_pLock.Lock(); bLocked = true; } @@ -234,12 +234,12 @@ void LuaManager::Release( Lua *&p ) pImpl->g_ActiveStates.erase( p ); if( bDoUnlock ) - m_pLock->Unlock(); + pImpl->g_pLock.Unlock(); p = NULL; } /* - * Low-level access to Lua is always serialized through m_pLock; we never run the Lua + * Low-level access to Lua is always serialized through pImpl->g_pLock; we never run the Lua * core simultaneously from multiple threads. However, when a thread has an acquired * lua_State, it can release Lua for use by other threads. This allows Lua bindings * to process long-running actions, without blocking all other threads from using Lua @@ -266,14 +266,14 @@ void LuaManager::Release( Lua *&p ) */ void LuaManager::YieldLua() { - ASSERT( m_pLock->IsLockedByThisThread() ); + ASSERT( pImpl->g_pLock.IsLockedByThisThread() ); - m_pLock->Unlock(); + pImpl->g_pLock.Unlock(); } void LuaManager::UnyieldLua() { - m_pLock->Lock(); + pImpl->g_pLock.Lock(); } void LuaManager::RegisterTypes() Index: LuaManager.h =================================================================== RCS file: /cvsroot/stepmania/stepmania/src/LuaManager.h,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -p -r1.105 -r1.106 --- LuaManager.h 29 Oct 2006 20:52:25 -0000 1.105 +++ LuaManager.h 31 Oct 2006 01:23:25 -0000 1.106 @@ -43,8 +43,6 @@ public: private: lua_State *m_pLuaMain; - - RageMutex *m_pLock; }; |