summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-01-02 22:36:41 +0000
committerRobby Zambito <contact@robbyzambito.me>2026-01-02 22:37:54 +0000
commit67908cf19875dd42f17d4ae6768fe7cf54a05e6c (patch)
tree2c40b9b7166dfeac687b76f12511a88a16cf29c8 /src/server
parent29e5b92ee0f207dd5bd8c352ce68796e8b6048da (diff)
Move handshake from client to server
Diffstat (limited to 'src/server')
-rw-r--r--src/server/client.zig5
-rw-r--r--src/server/main.zig7
2 files changed, 6 insertions, 6 deletions
diff --git a/src/server/client.zig b/src/server/client.zig
index 4207cdf..004b0f9 100644
--- a/src/server/client.zig
+++ b/src/server/client.zig
@@ -30,13 +30,10 @@ pub fn deinit(self: *Client, alloc: std.mem.Allocator) void {
self.* = undefined;
}
-pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator, queue: *std.Io.Queue(Message), server_info: Message.ServerInfo) !void {
+pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator, queue: *std.Io.Queue(Message)) !void {
self.recv_queue = queue;
var msgs: [8]Message = undefined;
- // Do initial handshake with client
- try queue.putOne(io, .{ .info = server_info });
-
while (true) {
const len = try queue.get(io, &msgs, 1);
std.debug.assert(len <= msgs.len);
diff --git a/src/server/main.zig b/src/server/main.zig
index 4ade64d..4c1093f 100644
--- a/src/server/main.zig
+++ b/src/server/main.zig
@@ -67,7 +67,7 @@ pub fn main(alloc: std.mem.Allocator, server_config: ServerInfo) !void {
defer server_task.cancel(io) catch {};
while (keep_running.load(.monotonic)) {
- try io.sleep(.fromMilliseconds(10), .awake);
+ try io.sleep(.fromMilliseconds(1), .awake);
}
std.debug.print("\n", .{});
@@ -179,7 +179,10 @@ fn handleConnection(
} else |_| {}
}
- var client_task = try io.concurrent(Client.start, .{ &client, io, server_allocator, &queue, server.info });
+ // Do initial handshake with client
+ try queue.putOne(io, .{ .info = server.info });
+
+ var client_task = try io.concurrent(Client.start, .{ &client, io, server_allocator, &queue });
defer client_task.cancel(io) catch {};
// Messages are owned by the server after they are received from the client