mirror of
				https://github.com/lightpanda-io/browser.git
				synced 2025-10-30 15:41:48 +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
	 Karl Seguin
					Karl Seguin