- just let delete shutdown the thread to avoid mutex deadlock

This commit is contained in:
Mark Vejvoda
2010-06-18 17:09:42 +00:00
parent df7181d435
commit 60c6848832
3 changed files with 8 additions and 11 deletions

View File

@@ -32,9 +32,6 @@ using namespace Shared::Platform;
namespace Glest{ namespace Game{ namespace Glest{ namespace Game{
// if FPS is less than this we start to skip 3D renders
//int MIN_RENDER_FPS_ALLOWED = 15;
Game *thisGamePtr = NULL; Game *thisGamePtr = NULL;
// ===================================================== // =====================================================

View File

@@ -325,7 +325,7 @@ MenuStateCustomGame::~MenuStateCustomGame() {
needToBroadcastServerSettings = false; needToBroadcastServerSettings = false;
needToRepublishToMasterserver = false; needToRepublishToMasterserver = false;
BaseThread::shutdownAndWait(publishToMasterserverThread); //BaseThread::shutdownAndWait(publishToMasterserverThread);
delete publishToMasterserverThread; delete publishToMasterserverThread;
publishToMasterserverThread = NULL; publishToMasterserverThread = NULL;
safeMutex.ReleaseLock(); safeMutex.ReleaseLock();
@@ -340,7 +340,7 @@ void MenuStateCustomGame::returnToParentMenu(){
needToBroadcastServerSettings = false; needToBroadcastServerSettings = false;
needToRepublishToMasterserver = false; needToRepublishToMasterserver = false;
BaseThread::shutdownAndWait(publishToMasterserverThread); //BaseThread::shutdownAndWait(publishToMasterserverThread);
delete publishToMasterserverThread; delete publishToMasterserverThread;
publishToMasterserverThread = NULL; publishToMasterserverThread = NULL;
@@ -385,7 +385,7 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
MutexSafeWrapper safeMutex(&masterServerThreadAccessor); MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
needToBroadcastServerSettings = false; needToBroadcastServerSettings = false;
needToRepublishToMasterserver = false; needToRepublishToMasterserver = false;
BaseThread::shutdownAndWait(publishToMasterserverThread); //BaseThread::shutdownAndWait(publishToMasterserverThread);
delete publishToMasterserverThread; delete publishToMasterserverThread;
publishToMasterserverThread = NULL; publishToMasterserverThread = NULL;
@@ -440,7 +440,7 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
needToBroadcastServerSettings = false; needToBroadcastServerSettings = false;
needToRepublishToMasterserver = false; needToRepublishToMasterserver = false;
BaseThread::shutdownAndWait(publishToMasterserverThread); //BaseThread::shutdownAndWait(publishToMasterserverThread);
delete publishToMasterserverThread; delete publishToMasterserverThread;
publishToMasterserverThread = NULL; publishToMasterserverThread = NULL;
safeMutex.ReleaseLock(); safeMutex.ReleaseLock();

View File

@@ -194,7 +194,7 @@ MenuStateMasterserver::~MenuStateMasterserver() {
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
BaseThread::shutdownAndWait(updateFromMasterserverThread); //BaseThread::shutdownAndWait(updateFromMasterserverThread);
delete updateFromMasterserverThread; delete updateFromMasterserverThread;
updateFromMasterserverThread = NULL; updateFromMasterserverThread = NULL;
@@ -241,7 +241,7 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
MutexSafeWrapper safeMutex(&masterServerThreadAccessor); MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
soundRenderer.playFx(coreData.getClickSoundB()); soundRenderer.playFx(coreData.getClickSoundB());
BaseThread::shutdownAndWait(updateFromMasterserverThread); //BaseThread::shutdownAndWait(updateFromMasterserverThread);
delete updateFromMasterserverThread; delete updateFromMasterserverThread;
updateFromMasterserverThread = NULL; updateFromMasterserverThread = NULL;
@@ -259,7 +259,7 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
MutexSafeWrapper safeMutex(&masterServerThreadAccessor); MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
soundRenderer.playFx(coreData.getClickSoundB()); soundRenderer.playFx(coreData.getClickSoundB());
needUpdateFromServer = false; needUpdateFromServer = false;
BaseThread::shutdownAndWait(updateFromMasterserverThread); //BaseThread::shutdownAndWait(updateFromMasterserverThread);
delete updateFromMasterserverThread; delete updateFromMasterserverThread;
updateFromMasterserverThread = NULL; updateFromMasterserverThread = NULL;
safeMutex.ReleaseLock(); safeMutex.ReleaseLock();
@@ -460,7 +460,7 @@ void MenuStateMasterserver::connectToServer(string ipString)
//config.setString("ServerIp", serverIp.getString()); //config.setString("ServerIp", serverIp.getString());
//config.save(); //config.save();
BaseThread::shutdownAndWait(updateFromMasterserverThread); //BaseThread::shutdownAndWait(updateFromMasterserverThread);
delete updateFromMasterserverThread; delete updateFromMasterserverThread;
updateFromMasterserverThread = NULL; updateFromMasterserverThread = NULL;
safeMutex.ReleaseLock(); safeMutex.ReleaseLock();