Skip to content

Commit

Permalink
Allocate less memory in websocket if WebsocketHandler isn't defined.
Browse files Browse the repository at this point in the history
  • Loading branch information
karlseguin committed Sep 7, 2024
1 parent ece900d commit 823f5cb
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/httpz.zig
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,8 @@ pub fn Server(comptime H: type) type {

const ActionArg = if (comptime std.meta.hasFn(Handler, "dispatch")) @typeInfo(@TypeOf(Handler.dispatch)).@"fn".params[1].type.? else Action(H);

const WebsocketHandler = if (Handler != void and comptime @hasDecl(Handler, "WebsocketHandler")) Handler.WebsocketHandler else DummyWebsocketHandler;
const has_websocket = Handler != void and @hasDecl(Handler, "WebsocketHandler");
const WebsocketHandler = if (has_websocket) Handler.WebsocketHandler else DummyWebsocketHandler;

const RouterConfig = struct {
middlewares: []const Middleware(H) = &.{},
Expand Down Expand Up @@ -288,10 +289,10 @@ pub fn Server(comptime H: type) type {
var websocket_state = try websocket.server.WorkerState.init(allocator, .{
.max_message_size = config.websocket.max_message_size,
.buffers = .{
.small_size = config.websocket.small_buffer_size,
.small_pool = config.websocket.small_buffer_pool,
.large_size = config.websocket.large_buffer_size,
.large_pool = config.websocket.large_buffer_pool,
.small_size = if (has_websocket) config.websocket.small_buffer_size else 0,
.small_pool = if (has_websocket) config.websocket.small_buffer_pool else 0,
.large_size = if (has_websocket) config.websocket.large_buffer_size else 0,
.large_pool = if (has_websocket) config.websocket.large_buffer_pool else 0,
},
// disable handshake memory allocation since httpz is handling
// the handshake request directly
Expand Down

0 comments on commit 823f5cb

Please sign in to comment.