commit 486a774e5fa079c4caba334f311ee32b54272f1f (tree)
parent 4170f3f77f23bca52a2a9b24d1a249fae35c04ac
Author: Isaac Freund <ifreund@ifreund.xyz>
Date: Wed, 9 Sep 2020 19:51:59 +0200
std: add option to use single-threaded event loop
std.event.Loop does not yet work in single threaded builds. However,
using evented io on a single thread can be very convenient. This commit
allows settind @import("root").event_loop_mode to .single_threaded
in order to allow this without reimplementing the startup code in
start.zig
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/std/event/loop.zig b/lib/std/event/loop.zig
@@ -112,7 +112,8 @@ pub const Loop = struct {
/// have the correct pointer value.
/// https://github.com/ziglang/zig/issues/2761 and https://github.com/ziglang/zig/issues/2765
pub fn init(self: *Loop) !void {
- if (builtin.single_threaded) {
+ if (builtin.single_threaded
+ or (@hasDecl(root, "event_loop_mode") and root.event_loop_mode == .single_threaded)) {
return self.initSingleThreaded();
} else {
return self.initMultiThreaded();