Core/Maps: Unload transports in MapManager::UnloadAll instead of singleton destructor.

Core/Transports: Properly delink units from transports on transport desutruction. - Thanks to Shauren for help.
Core/ObjectAccessor: Unload corpse 'storage' in added UnloadAll method called in WorldRunnable postservice hook.
Core/Master: Change some postservice queries to syncrhonous (direct) execution to ensure execution on shutdown
Core/Master: Remove redundant calls to ACE::init and ACE::fini

These changes were made to fix crash/freeze issues on shutdown.
This commit is contained in:
Machiavelli
2011-01-16 00:08:52 +01:00
parent 58564cc496
commit 52cd2cbd7e
7 changed files with 37 additions and 33 deletions
+5
View File
@@ -40,6 +40,7 @@ class DynamicObject;
class WorldObject;
class Vehicle;
class Map;
class WorldRunnable;
template <class T>
class HashMapHolder
@@ -84,6 +85,7 @@ class HashMapHolder
class ObjectAccessor
{
friend class ACE_Singleton<ObjectAccessor, ACE_Thread_Mutex>;
friend class WorldRunnable;
ObjectAccessor();
~ObjectAccessor();
ObjectAccessor(const ObjectAccessor&);
@@ -254,6 +256,9 @@ class ObjectAccessor
typedef ACE_Thread_Mutex LockType;
protected:
void UnloadAll();
private:
Player2CorpsesMapType i_player2corpse;