diff options
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/network_server.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 716b41744..fcaad19ab 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -113,6 +113,12 @@ struct PacketWriter : SaveFilter { if (this->mutex != NULL) this->mutex->SendSignal(); if (this->mutex != NULL) this->mutex->EndCritical(); + + /* Make sure the saving is completely cancelled. Yes, + * we need to handle the save finish as well as the + * next connection might just be requesting a map. */ + WaitTillSaved(); + ProcessAsyncSaveFinish(); } /** @@ -236,13 +242,6 @@ ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler() this->savegame->Destroy(); this->savegame = NULL; } - - /* Make sure the saving is completely cancelled. - * Yes, we need to handle the save finish as well - * as the next connection in this "loop" might - * just be requesting the map and such. */ - WaitTillSaved(); - ProcessAsyncSaveFinish(); } Packet *ServerNetworkGameSocketHandler::ReceivePacket() @@ -622,8 +621,6 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendMap() this->savegame->Destroy(); this->savegame = NULL; - WaitTillSaved(); - /* Set the status to DONE_MAP, no we will wait for the client * to send it is ready (maybe that happens like never ;)) */ this->status = STATUS_DONE_MAP; |