aboutsummaryrefslogtreecommitdiff
path: root/std/event.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-07-09 01:22:36 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-07-09 01:22:36 -0400
commit3ba451778fde48a5463180deea6d6539f91e1303 (patch)
treeb4f30687563bf8c3d8661fd7ffad46ee4ecf02fb /std/event.zig
parent04d3da4bd1d5b8922d3f161c92c6185f33961523 (diff)
downloadzig-3ba451778fde48a5463180deea6d6539f91e1303.tar.gz
zig-3ba451778fde48a5463180deea6d6539f91e1303.zip
fix regressions on linux
Diffstat (limited to 'std/event.zig')
-rw-r--r--std/event.zig30
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