diff --git a/src/http/Client.zig b/src/http/Client.zig index 91efd30b..f2a26dfc 100644 --- a/src/http/Client.zig +++ b/src/http/Client.zig @@ -185,14 +185,12 @@ pub fn tick(self: *Client, timeout_ms: usize) !void { pub fn request(self: *Client, req: Request) !void { if (self.handles.getFreeHandle()) |handle| { - self.active += 1; return self.makeRequest(handle, req); } const node = try self.queue_node_pool.create(); node.data = req; self.queue.append(node); - self.active += 1; } // See ScriptManager.blockingGet @@ -236,18 +234,13 @@ fn makeRequest(self: *Client, handle: *Handle, req: Request) !void { // we need this for cookies const uri = std.Uri.parse(req.url) catch |err| { - self.active -= 1; self.handles.release(handle); log.warn(.http, "invalid url", .{ .err = err, .url = req.url }); return; }; const header_list = blk: { - errdefer { - self.active -= 1; - self.handles.release(handle); - } - + errdefer self.handles.release(handle); try conn.setMethod(req.method); try conn.setURL(req.url); @@ -282,10 +275,7 @@ fn makeRequest(self: *Client, handle: *Handle, req: Request) !void { }; { - errdefer { - self.active -= 1; - self.handles.release(handle); - } + errdefer self.handles.release(handle); const transfer = try self.transfer_pool.create(); transfer.* = .{ @@ -309,6 +299,7 @@ fn makeRequest(self: *Client, handle: *Handle, req: Request) !void { } } + self.active += 1; return self.perform(0); } diff --git a/vendor/netsurf/libdom b/vendor/netsurf/libdom index c0df4581..0c590b26 160000 --- a/vendor/netsurf/libdom +++ b/vendor/netsurf/libdom @@ -1 +1 @@ -Subproject commit c0df458132162aba136d57ce1ba2179122a9e717 +Subproject commit 0c590b265a65b937042d68ad34902c9b4a05839a