Skip to content

Commit a3e7507

Browse files
committed
Fixed refreshResources() sometimes crashing the server
1 parent 0a88ee2 commit a3e7507

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

MTA10_Server/mods/deathmatch/logic/CResourceManager.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,14 @@ void CResourceManager::ProcessQueue ( void )
868868
else
869869
CLogger::LogPrintf ( "%s restarted successfully\n", sItem.pResource->GetName ().c_str () );
870870
}
871+
else if ( sItem.eQueue == QUEUE_REFRESH )
872+
{
873+
Refresh();
874+
}
875+
else if ( sItem.eQueue == QUEUE_REFRESHALL )
876+
{
877+
Refresh( true );
878+
}
871879
}
872880

873881
}

MTA10_Server/mods/deathmatch/logic/CResourceManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class CResourceManager
3838
QUEUE_STOPALL,
3939
QUEUE_RESTART,
4040
QUEUE_RESTART2,
41+
QUEUE_REFRESH,
42+
QUEUE_REFRESHALL,
4143
};
4244

4345
struct sResourceStartFlags

MTA10_Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,10 @@ int CLuaResourceDefs::refreshResources ( lua_State* luaVM )
11171117

11181118
if ( !argStream.HasErrors ( ) )
11191119
{
1120-
m_pResourceManager->Refresh ( bRefreshAll );
1120+
if ( bRefreshAll )
1121+
m_pResourceManager->QueueResource( NULL, CResourceManager::QUEUE_REFRESHALL, NULL );
1122+
else
1123+
m_pResourceManager->QueueResource( NULL, CResourceManager::QUEUE_REFRESH, NULL );
11211124

11221125
lua_pushboolean ( luaVM, true );
11231126
return 1;

0 commit comments

Comments
 (0)