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()) {
if (world_dt > 0) {
server.Update(world_dt);
}
+ if (world_dt > 32) {
+ std::cout << "world dt at " << world_dt << "ms!" << std::endl;
+ }
}