diff options
author | 2021-12-22 19:05:39 -0800 | |
---|---|---|
committer | 2021-12-22 19:05:39 -0800 | |
commit | 2cfdf293645e50aa8a142a40cf2f1583611d0047 (patch) | |
tree | 3a064d687debcfbc6566b18ceeb275c4aefe1cfb /src/http/network_thread.zig | |
parent | 328534605f2c0620e7cc8370dc31d072f4633140 (diff) | |
download | bun-2cfdf293645e50aa8a142a40cf2f1583611d0047.tar.gz bun-2cfdf293645e50aa8a142a40cf2f1583611d0047.tar.zst bun-2cfdf293645e50aa8a142a40cf2f1583611d0047.zip |
Fix error from requesting too much from io_uring
Diffstat (limited to 'src/http/network_thread.zig')
-rw-r--r-- | src/http/network_thread.zig | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/http/network_thread.zig b/src/http/network_thread.zig index d3826dcb3..4c47f1ffe 100644 --- a/src/http/network_thread.zig +++ b/src/http/network_thread.zig @@ -3,6 +3,7 @@ pub const Batch = ThreadPool.Batch; pub const Task = ThreadPool.Task; const std = @import("std"); const AsyncIO = @import("io"); +const Output = @import("../global.zig").Output; const NetworkThread = @This(); @@ -70,8 +71,19 @@ pub fn getAddressList(allocator: *std.mem.Allocator, name: []const u8, port: u16 pub fn init() !void { if ((global_loaded.swap(1, .Monotonic)) == 1) return; + AsyncIO.global = AsyncIO.init(512, 0) catch |err| { + Output.prettyErrorln("<r><red>error<r>: Failed to initialize network thread: <red><b>{s}<r>.\nHTTP requests will not work. Please file an issue and run strace().", .{@errorName(err)}); + Output.flush(); + + global = NetworkThread{ + .pool = ThreadPool.init(.{ .max_threads = 0, .stack_size = 64 * 1024 * 1024 }), + }; + global.pool.max_threads = 0; + AsyncIO.global_loaded = true; + return; + }; + AsyncIO.global_loaded = true; - AsyncIO.global = try AsyncIO.init(1024, 0); global = NetworkThread{ .pool = ThreadPool.init(.{ .max_threads = 1, .stack_size = 64 * 1024 * 1024 }), |