| ... | ... | @@ -69,7 +69,7 @@ pub const Loop = struct { |
| 69 | 69 | }; |
| 70 | 70 | |
| 71 | 71 | pub const EventFd = switch (builtin.os.tag) { |
| 72 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventFd, |
| 72 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventFd, |
| 73 | 73 | .linux => struct { |
| 74 | 74 | base: ResumeNode, |
| 75 | 75 | epoll_op: u32, |
| ... | ... | @@ -88,7 +88,7 @@ pub const Loop = struct { |
| 88 | 88 | }; |
| 89 | 89 | |
| 90 | 90 | pub const Basic = switch (builtin.os.tag) { |
| 91 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventBasic, |
| 91 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventBasic, |
| 92 | 92 | .linux => struct { |
| 93 | 93 | base: ResumeNode, |
| 94 | 94 | }, |
| ... | ... | @@ -269,7 +269,7 @@ pub const Loop = struct { |
| 269 | 269 | self.extra_threads[extra_thread_index] = try Thread.spawn(.{}, workerRun, .{self}); |
| 270 | 270 | } |
| 271 | 271 | }, |
| 272 | | .macos, .freebsd, .netbsd, .dragonfly => { |
| 272 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly => { |
| 273 | 273 | self.os_data.kqfd = try os.kqueue(); |
| 274 | 274 | errdefer os.close(self.os_data.kqfd); |
| 275 | 275 | |
| ... | ... | @@ -457,7 +457,7 @@ pub const Loop = struct { |
| 457 | 457 | while (self.available_eventfd_resume_nodes.pop()) |node| os.close(node.data.eventfd); |
| 458 | 458 | os.close(self.os_data.epollfd); |
| 459 | 459 | }, |
| 460 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 460 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 461 | 461 | os.close(self.os_data.kqfd); |
| 462 | 462 | }, |
| 463 | 463 | .windows => { |
| ... | ... | @@ -552,7 +552,7 @@ pub const Loop = struct { |
| 552 | 552 | .linux => { |
| 553 | 553 | self.linuxWaitFd(fd, os.linux.EPOLL.ET | os.linux.EPOLL.ONESHOT | os.linux.EPOLL.IN); |
| 554 | 554 | }, |
| 555 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 555 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 556 | 556 | self.bsdWaitKev(@intCast(usize, fd), os.system.EVFILT_READ, os.system.EV_ONESHOT); |
| 557 | 557 | }, |
| 558 | 558 | else => @compileError("Unsupported OS"), |
| ... | ... | @@ -564,7 +564,7 @@ pub const Loop = struct { |
| 564 | 564 | .linux => { |
| 565 | 565 | self.linuxWaitFd(fd, os.linux.EPOLL.ET | os.linux.EPOLL.ONESHOT | os.linux.EPOLL.OUT); |
| 566 | 566 | }, |
| 567 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 567 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 568 | 568 | self.bsdWaitKev(@intCast(usize, fd), os.system.EVFILT_WRITE, os.system.EV_ONESHOT); |
| 569 | 569 | }, |
| 570 | 570 | else => @compileError("Unsupported OS"), |
| ... | ... | @@ -576,7 +576,7 @@ pub const Loop = struct { |
| 576 | 576 | .linux => { |
| 577 | 577 | self.linuxWaitFd(fd, os.linux.EPOLL.ET | os.linux.EPOLL.ONESHOT | os.linux.EPOLL.OUT | os.linux.EPOLL.IN); |
| 578 | 578 | }, |
| 579 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 579 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 580 | 580 | self.bsdWaitKev(@intCast(usize, fd), os.system.EVFILT_READ, os.system.EV_ONESHOT); |
| 581 | 581 | self.bsdWaitKev(@intCast(usize, fd), os.system.EVFILT_WRITE, os.system.EV_ONESHOT); |
| 582 | 582 | }, |
| ... | ... | @@ -645,7 +645,7 @@ pub const Loop = struct { |
| 645 | 645 | const eventfd_node = &resume_stack_node.data; |
| 646 | 646 | eventfd_node.base.handle = next_tick_node.data; |
| 647 | 647 | switch (builtin.os.tag) { |
| 648 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 648 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 649 | 649 | const kevent_array = @as(*const [1]os.Kevent, &eventfd_node.kevent); |
| 650 | 650 | const empty_kevs = &[0]os.Kevent{}; |
| 651 | 651 | _ = os.kevent(self.os_data.kqfd, kevent_array, empty_kevs, null) catch { |
| ... | ... | @@ -708,6 +708,9 @@ pub const Loop = struct { |
| 708 | 708 | switch (builtin.os.tag) { |
| 709 | 709 | .linux, |
| 710 | 710 | .macos, |
| 711 | .ios, |
| 712 | .tvos, |
| 713 | .watchos, |
| 711 | 714 | .freebsd, |
| 712 | 715 | .netbsd, |
| 713 | 716 | .dragonfly, |
| ... | ... | @@ -802,7 +805,7 @@ pub const Loop = struct { |
| 802 | 805 | } |
| 803 | 806 | return; |
| 804 | 807 | }, |
| 805 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 808 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 806 | 809 | const final_kevent = @as(*const [1]os.Kevent, &self.os_data.final_kevent); |
| 807 | 810 | const empty_kevs = &[0]os.Kevent{}; |
| 808 | 811 | // cannot fail because we already added it and this just enables it |
| ... | ... | @@ -1428,7 +1431,7 @@ pub const Loop = struct { |
| 1428 | 1431 | } |
| 1429 | 1432 | } |
| 1430 | 1433 | }, |
| 1431 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 1434 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => { |
| 1432 | 1435 | var eventlist: [1]os.Kevent = undefined; |
| 1433 | 1436 | const empty_kevs = &[0]os.Kevent{}; |
| 1434 | 1437 | const count = os.kevent(self.os_data.kqfd, empty_kevs, eventlist[0..], null) catch unreachable; |
| ... | ... | @@ -1554,7 +1557,7 @@ pub const Loop = struct { |
| 1554 | 1557 | |
| 1555 | 1558 | const OsData = switch (builtin.os.tag) { |
| 1556 | 1559 | .linux => LinuxOsData, |
| 1557 | | .macos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventData, |
| 1560 | .macos, .ios, .tvos, .watchos, .freebsd, .netbsd, .dragonfly, .openbsd => KEventData, |
| 1558 | 1561 | .windows => struct { |
| 1559 | 1562 | io_port: windows.HANDLE, |
| 1560 | 1563 | extra_thread_count: usize, |