mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-12-15 15:58:57 +00:00
Merge pull request #1132 from lightpanda-io/reduce_http_tick_blocking
Remove potential processing blocking with CDP
This commit is contained in:
@@ -106,7 +106,7 @@ pub fn LogInterceptor(comptime BC: type) type {
|
|||||||
}, .{
|
}, .{
|
||||||
.session_id = self.bc.session_id,
|
.session_id = self.bc.session_id,
|
||||||
}) catch |err| {
|
}) catch |err| {
|
||||||
log.err(.interceptor, "failed to send", .{.err = err});
|
log.err(.interceptor, "failed to send", .{ .err = err });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -393,7 +393,9 @@ fn perform(self: *Client, timeout_ms: c_int) !PerformStatus {
|
|||||||
|
|
||||||
// We're potentially going to block for a while until we get data. Process
|
// We're potentially going to block for a while until we get data. Process
|
||||||
// whatever messages we have waiting ahead of time.
|
// whatever messages we have waiting ahead of time.
|
||||||
try self.processMessages();
|
if (try self.processMessages()) {
|
||||||
|
return .normal;
|
||||||
|
}
|
||||||
|
|
||||||
var status = PerformStatus.normal;
|
var status = PerformStatus.normal;
|
||||||
if (self.extra_socket) |s| {
|
if (self.extra_socket) |s| {
|
||||||
@@ -411,12 +413,13 @@ fn perform(self: *Client, timeout_ms: c_int) !PerformStatus {
|
|||||||
try errorMCheck(c.curl_multi_poll(multi, null, 0, timeout_ms, null));
|
try errorMCheck(c.curl_multi_poll(multi, null, 0, timeout_ms, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
try self.processMessages();
|
_ = try self.processMessages();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn processMessages(self: *Client) !void {
|
fn processMessages(self: *Client) !bool {
|
||||||
const multi = self.multi;
|
const multi = self.multi;
|
||||||
|
var processed = false;
|
||||||
var messages_count: c_int = 0;
|
var messages_count: c_int = 0;
|
||||||
while (c.curl_multi_info_read(multi, &messages_count)) |msg_| {
|
while (c.curl_multi_info_read(multi, &messages_count)) |msg_| {
|
||||||
const msg: *c.CURLMsg = @ptrCast(msg_);
|
const msg: *c.CURLMsg = @ptrCast(msg_);
|
||||||
@@ -475,10 +478,12 @@ fn processMessages(self: *Client) !void {
|
|||||||
.transfer = transfer,
|
.transfer = transfer,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
processed = true;
|
||||||
} else |err| {
|
} else |err| {
|
||||||
self.requestFailed(transfer, err);
|
self.requestFailed(transfer, err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return processed;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn endTransfer(self: *Client, transfer: *Transfer) void {
|
fn endTransfer(self: *Client, transfer: *Transfer) void {
|
||||||
|
|||||||
Reference in New Issue
Block a user