Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › Io/ › Kqueue.zig › yield
yield
Kqueue.yield
fn yield (k : *Kqueue , maybe_ready_fiber : ?*Fiber , pending_task : SwitchMessage .PendingTask ) void
File
Code
fn yield (k : *Kqueue , maybe_ready_fiber : ?*Fiber , pending_task : SwitchMessage .PendingTask ) void {
const thread : *Thread = .current ();
const ready_context = if (maybe_ready_fiber orelse k .findReadyFiber (thread )) |ready_fiber |
&ready_fiber .context
else
&thread .idle_context ;
const message : SwitchMessage = .{
.contexts = .{
.old = thread .current_context ,
.new = ready_context ,
},
.pending_task = pending_task ,
};
std .log .debug ("switching from {*} to {*}" , .{ message .contexts .old , message .contexts .new });
contextSwitch (&message ).handle (k );
}