mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-22 04:34:44 +00:00
mcp: use acquire/release ordering for server running flag
This commit is contained in:
@@ -156,7 +156,7 @@ fn initResources(allocator: std.mem.Allocator) ![]const protocol.Resource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn deinit(self: *Self) void {
|
pub fn deinit(self: *Self) void {
|
||||||
self.is_running.store(false, .seq_cst);
|
self.is_running.store(false, .release);
|
||||||
|
|
||||||
self.browser.deinit();
|
self.browser.deinit();
|
||||||
self.allocator.destroy(self.browser);
|
self.allocator.destroy(self.browser);
|
||||||
|
|||||||
@@ -13,12 +13,12 @@ pub fn processRequests(server: *Server) !void {
|
|||||||
var stdin_buf: [8192]u8 = undefined;
|
var stdin_buf: [8192]u8 = undefined;
|
||||||
var stdin = stdin_file.reader(&stdin_buf);
|
var stdin = stdin_file.reader(&stdin_buf);
|
||||||
|
|
||||||
server.is_running.store(true, .seq_cst);
|
server.is_running.store(true, .release);
|
||||||
|
|
||||||
var arena: std.heap.ArenaAllocator = .init(server.allocator);
|
var arena: std.heap.ArenaAllocator = .init(server.allocator);
|
||||||
defer arena.deinit();
|
defer arena.deinit();
|
||||||
|
|
||||||
while (server.is_running.load(.seq_cst)) {
|
while (server.is_running.load(.acquire)) {
|
||||||
const msg = stdin.interface.adaptToOldInterface().readUntilDelimiterAlloc(server.allocator, '\n', 1024 * 1024 * 10) catch |err| {
|
const msg = stdin.interface.adaptToOldInterface().readUntilDelimiterAlloc(server.allocator, '\n', 1024 * 1024 * 10) catch |err| {
|
||||||
if (err == error.EndOfStream) break;
|
if (err == error.EndOfStream) break;
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
Reference in New Issue
Block a user