| ... | ... | @@ -51,6 +51,17 @@ pub const std_options: std.Options = .{ |
| 51 | 51 | }, |
| 52 | 52 | }; |
| 53 | 53 | pub const std_options_cwd = if (native_os == .wasi) wasi_cwd else null; |
| 54 | pub const std_options_debug_threaded_io: ?*Io.Threaded = switch (build_options.io_mode) { |
| 55 | .threaded => &io_impl, |
| 56 | .evented => switch (builtin.mode) { |
| 57 | .Debug => Io.Threaded.global_single_threaded, |
| 58 | .ReleaseFast, .ReleaseSmall, .ReleaseSafe => null, |
| 59 | }, |
| 60 | }; |
| 61 | pub const std_options_debug_io: Io = switch (build_options.io_mode) { |
| 62 | .threaded => io_impl.ioBasic(), |
| 63 | .evented => io_impl.io(), |
| 64 | }; |
| 54 | 65 | |
| 55 | 66 | pub const debug = struct { |
| 56 | 67 | pub fn printCrashContext(terminal: Io.Terminal) void { |
| ... | ... | @@ -189,7 +200,6 @@ pub fn main(init: std.process.Init.Minimal) anyerror!void { |
| 189 | 200 | var root_allocator: RootAllocator = .init; |
| 190 | 201 | defer _ = root_allocator.deinit(); |
| 191 | 202 | const root_gpa = root_allocator.allocator(); |
| 192 | | var io_impl: IoImpl = undefined; |
| 193 | 203 | switch (build_options.io_mode) { |
| 194 | 204 | .threaded => io_impl = .init(root_gpa, .{ |
| 195 | 205 | .stack_size = thread_stack_size, |
| ... | ... | @@ -205,7 +215,6 @@ pub fn main(init: std.process.Init.Minimal) anyerror!void { |
| 205 | 215 | }), |
| 206 | 216 | } |
| 207 | 217 | defer io_impl.deinit(); |
| 208 | | io_impl_ptr = &io_impl; |
| 209 | 218 | const io = io_impl.io(); |
| 210 | 219 | const gpa = switch (build_options.io_mode) { |
| 211 | 220 | .threaded => root_gpa, |
| ... | ... | @@ -7815,7 +7824,7 @@ const IoImpl = switch (build_options.io_mode) { |
| 7815 | 7824 | .threaded => Io.Threaded, |
| 7816 | 7825 | .evented => Io.Evented, |
| 7817 | 7826 | }; |
| 7818 | | var io_impl_ptr: *IoImpl = undefined; |
| 7827 | var io_impl: IoImpl = undefined; |
| 7819 | 7828 | fn setThreadLimit(arena: std.mem.Allocator, n: usize) Allocator.Error!void { |
| 7820 | 7829 | switch (build_options.io_mode) { |
| 7821 | 7830 | .threaded => { |
| ... | ... | @@ -7824,8 +7833,8 @@ fn setThreadLimit(arena: std.mem.Allocator, n: usize) Allocator.Error!void { |
| 7824 | 7833 | // linker can run concurrently, so we need to set both the async *and* the |
| 7825 | 7834 | // concurrency limit. |
| 7826 | 7835 | const limit: Io.Limit = .limited(n - 1); |
| 7827 | | io_impl_ptr.setAsyncLimit(limit); |
| 7828 | | io_impl_ptr.concurrent_limit = limit; |
| 7836 | io_impl.setAsyncLimit(limit); |
| 7837 | io_impl.concurrent_limit = limit; |
| 7829 | 7838 | }, |
| 7830 | 7839 | .evented => {}, |
| 7831 | 7840 | } |