]> git.localhorst.tv Git - blank.git/blobdiff - src/server/ServerState.cpp
let the server wait a little more efficiently
[blank.git] / src / server / ServerState.cpp
index 0bec3918c0345bc0e3e836157d3d148ba0ddcac2..7e645edf4a9c55c7f9262ddfe7763f134f3afd4c 100644 (file)
@@ -58,6 +58,15 @@ void ServerState::Handle(const SDL_Event &event) {
 
 void ServerState::Update(int dt) {
        loop_timer.Update(dt);
+       if (!loop_timer.HitOnce() && loop_timer.IntervalRemain() > 1) {
+               server.Wait(loop_timer.IntervalRemain() - 1);
+               return;
+       }
+       if (dt == 0 && !server.Ready()) {
+               // effectively wait in a spin loop
+               return;
+       }
+
        server.Handle();
        int world_dt = 0;
        while (loop_timer.HitOnce()) {