Skip to content

Commit feae50e

Browse files
committed
feat(kqueue): batch submitting and reaping together
1 parent 5ad8030 commit feae50e

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/aio/kqueue.zig

+3-4
Original file line numberDiff line numberDiff line change
@@ -362,9 +362,7 @@ pub const AsyncKQueue = struct {
362362

363363
pub fn submit(self: *AsyncIO) !void {
364364
const kqueue: *AsyncKQueue = @ptrCast(@alignCast(self.runner));
365-
const change_slice = kqueue.changes[0..kqueue.change_count];
366-
kqueue.change_count = 0;
367-
_ = try std.posix.kevent(kqueue.kqueue_fd, change_slice, &.{}, null);
365+
_ = kqueue;
368366
}
369367

370368
pub fn reap(self: *AsyncIO, wait: bool) ![]Completion {
@@ -458,10 +456,11 @@ pub const AsyncKQueue = struct {
458456
// Handle all of the kqueue I/O
459457
const kqueue_events = try std.posix.kevent(
460458
kqueue.kqueue_fd,
461-
&.{},
459+
kqueue.changes[0..kqueue.change_count],
462460
kqueue.events,
463461
if (busy_wait or reaped > 0) &timeout_spec else null,
464462
);
463+
kqueue.change_count = 0;
465464
for (kqueue.events[0..kqueue_events]) |event| {
466465
const job_index = event.udata;
467466
assert(kqueue.jobs.dirty.isSet(job_index));

0 commit comments

Comments
 (0)