Commit 3ba451778f

Andrew Kelley <superjoe30@gmail.com>
2018-07-09 07:22:36
fix regressions on linux
1 parent 04d3da4
Changed files (1)
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