bugfix in tcp server
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 24 Jan 2022 18:29:24 +0000 (12:29 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 24 Jan 2022 18:29:24 +0000 (12:29 -0600)
core/net/tcp.onyx

index 3a874d8b32c9af9c8b357135274c48ab1afd22b5..23428c92d8a28d2f75f003472c43920dc6dac802 100644 (file)
@@ -7,6 +7,7 @@ package core.net
     array   :: package core.array
     memory  :: package core.memory
     alloc   :: package core.alloc
+    os      :: package core.os
 
     use package core.intrinsics.onyx { __zero_value }
 }
@@ -15,6 +16,8 @@ package core.net
     #error "Expected multi-threading to be enabled for TCP server.";
 }
 
+// Should TCP_Connection be an abstraction of both the client and the server?
+// Or is there not enough shared between them to justify that?
 TCP_Connection :: struct {
     socket: Socket;
 
@@ -180,6 +183,11 @@ tcp_server_pulse :: (use server: ^TCP_Server) -> bool {
         }
     }
 
+    if client_count == 0 {
+        os.sleep(pulse_time_ms);
+        return true;
+    }
+
     clients_with_messages := wait_to_get_client_messages(server);
     defer if clients_with_messages.data != null do cfree(clients_with_messages.data);