Use boost::shared_ptr instead of std::auto_ptr where threads are involved, because std::auto_ptr is not thread safe.
This commit is contained in:
@@ -26,7 +26,6 @@
|
|||||||
#include <playerdata.h>
|
#include <playerdata.h>
|
||||||
#include <gamedata.h>
|
#include <gamedata.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
|
||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
class ClientContext;
|
class ClientContext;
|
||||||
@@ -151,14 +150,14 @@ private:
|
|||||||
NetPacketList m_outPacketList;
|
NetPacketList m_outPacketList;
|
||||||
mutable boost::mutex m_outPacketListMutex;
|
mutable boost::mutex m_outPacketListMutex;
|
||||||
|
|
||||||
std::auto_ptr<ClientContext> m_context;
|
boost::shared_ptr<ClientContext> m_context;
|
||||||
std::auto_ptr<ClientSenderCallback> m_senderCallback;
|
boost::shared_ptr<ClientSenderCallback> m_senderCallback;
|
||||||
ClientState *m_curState;
|
ClientState *m_curState;
|
||||||
GuiInterface &m_gui;
|
GuiInterface &m_gui;
|
||||||
AvatarManager &m_avatarManager;
|
AvatarManager &m_avatarManager;
|
||||||
|
|
||||||
std::auto_ptr<SenderThread> m_sender;
|
boost::shared_ptr<SenderThread> m_sender;
|
||||||
std::auto_ptr<ReceiverHelper> m_receiver;
|
boost::shared_ptr<ReceiverHelper> m_receiver;
|
||||||
|
|
||||||
GameData m_gameData;
|
GameData m_gameData;
|
||||||
StartData m_startData;
|
StartData m_startData;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include <core/thread.h>
|
#include <core/thread.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
class ClientContext;
|
class ClientContext;
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::auto_ptr<ClientContext> m_context;
|
boost::shared_ptr<ClientContext> m_context;
|
||||||
bool m_retVal;
|
bool m_retVal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@
|
|||||||
#include <core/thread.h>
|
#include <core/thread.h>
|
||||||
#include <gui/guiinterface.h>
|
#include <gui/guiinterface.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
class ServerContext;
|
class ServerContext;
|
||||||
class ServerLobbyThread;
|
class ServerLobbyThread;
|
||||||
@@ -61,8 +60,8 @@ protected:
|
|||||||
ServerLobbyThread &GetLobbyThread();
|
ServerLobbyThread &GetLobbyThread();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::auto_ptr<ServerContext> m_context;
|
boost::shared_ptr<ServerContext> m_context;
|
||||||
std::auto_ptr<ServerLobbyThread> m_lobbyThread;
|
boost::shared_ptr<ServerLobbyThread> m_lobbyThread;
|
||||||
|
|
||||||
GuiInterface &m_gui;
|
GuiInterface &m_gui;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ private:
|
|||||||
mutable boost::mutex m_adminPlayerIdMutex;
|
mutable boost::mutex m_adminPlayerIdMutex;
|
||||||
|
|
||||||
ServerLobbyThread &m_lobbyThread;
|
ServerLobbyThread &m_lobbyThread;
|
||||||
std::auto_ptr<ReceiverHelper> m_receiver;
|
boost::shared_ptr<ReceiverHelper> m_receiver;
|
||||||
std::auto_ptr<SenderThread> m_sender;
|
boost::shared_ptr<SenderThread> m_sender;
|
||||||
boost::shared_ptr<GameSenderCallback> m_senderCallback;
|
boost::shared_ptr<GameSenderCallback> m_senderCallback;
|
||||||
GuiInterface &m_gui;
|
GuiInterface &m_gui;
|
||||||
|
|
||||||
|
|||||||
@@ -164,8 +164,8 @@ private:
|
|||||||
|
|
||||||
GameMap m_gameMap;
|
GameMap m_gameMap;
|
||||||
|
|
||||||
std::auto_ptr<ReceiverHelper> m_receiver;
|
boost::shared_ptr<ReceiverHelper> m_receiver;
|
||||||
std::auto_ptr<SenderThread> m_sender;
|
boost::shared_ptr<SenderThread> m_sender;
|
||||||
boost::shared_ptr<ServerSenderCallback> m_senderCallback;
|
boost::shared_ptr<ServerSenderCallback> m_senderCallback;
|
||||||
GuiInterface &m_gui;
|
GuiInterface &m_gui;
|
||||||
AvatarManager &m_avatarManager;
|
AvatarManager &m_avatarManager;
|
||||||
|
|||||||
Reference in New Issue
Block a user