diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-07-09 01:22:36 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-07-09 01:22:36 -0400 |
| commit | 3ba451778fde48a5463180deea6d6539f91e1303 (patch) | |
| tree | b4f30687563bf8c3d8661fd7ffad46ee4ecf02fb /std/event.zig | |
| parent | 04d3da4bd1d5b8922d3f161c92c6185f33961523 (diff) | |
| download | zig-3ba451778fde48a5463180deea6d6539f91e1303.tar.gz zig-3ba451778fde48a5463180deea6d6539f91e1303.zip | |
fix regressions on linux
Diffstat (limited to 'std/event.zig')
| -rw-r--r-- | std/event.zig | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/std/event.zig b/std/event.zig index 12aa2a3fc7..3fad81a78b 100644 --- a/std/event.zig +++ b/std/event.zig @@ -136,10 +136,7 @@ pub const Loop = struct { }; pub const EventFd = switch (builtin.os) { - builtin.Os.macosx => struct { - base: ResumeNode, - kevent: posix.Kevent, - }, + builtin.Os.macosx => MacOsEventFd, builtin.Os.linux => struct { base: ResumeNode, epoll_op: u32, @@ -147,6 +144,11 @@ pub const Loop = struct { }, else => @compileError("unsupported OS"), }; + + const MacOsEventFd = struct { + base: ResumeNode, + kevent: posix.Kevent, + }; }; /// After initialization, call run(). @@ -276,10 +278,10 @@ pub const Loop = struct { .handle = undefined, }, // this one is for sending events - .kevent = posix.Kevent { + .kevent = posix.Kevent{ .ident = i, .filter = posix.EVFILT_USER, - .flags = posix.EV_CLEAR|posix.EV_ADD|posix.EV_DISABLE, + .flags = posix.EV_CLEAR | posix.EV_ADD | posix.EV_DISABLE, .fflags = 0, .data = 0, .udata = @ptrToInt(&eventfd_node.data.base), @@ -290,10 +292,10 @@ pub const Loop = struct { self.available_eventfd_resume_nodes.push(eventfd_node); const kevent_array = (*[1]posix.Kevent)(&eventfd_node.data.kevent); _ = try std.os.bsdKEvent(self.os_data.kqfd, kevent_array, eventlist, null); - eventfd_node.data.kevent.flags = posix.EV_CLEAR|posix.EV_ENABLE; + eventfd_node.data.kevent.flags = posix.EV_CLEAR | posix.EV_ENABLE; eventfd_node.data.kevent.fflags = posix.NOTE_TRIGGER; // this one is for waiting for events - self.os_data.kevents[i] = posix.Kevent { + self.os_data.kevents[i] = posix.Kevent{ .ident = i, .filter = posix.EVFILT_USER, .flags = 0, @@ -542,13 +544,15 @@ pub const Loop = struct { final_eventfd: i32, final_eventfd_event: std.os.linux.epoll_event, }, - builtin.Os.macosx => struct { - kqfd: i32, - final_kevent: posix.Kevent, - kevents: []posix.Kevent, - }, + builtin.Os.macosx => MacOsData, else => struct {}, }; + + const MacOsData = struct { + kqfd: i32, + final_kevent: posix.Kevent, + kevents: posix.Kevent, + }; }; /// many producer, many consumer, thread-safe, lock-free, runtime configurable buffer size |
