summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network_server.cpp15
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;