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 › compiler/ › Maker/ › Fuzz.zig › coverageRunCancelable
coverageRunCancelable
Fuzz.coverageRunCancelable
fn coverageRunCancelable (fuzz : *Fuzz ) Io .Cancelable !void
File
Code
fn coverageRunCancelable (fuzz : *Fuzz ) Io .Cancelable !void {
const maker = fuzz .maker ;
const graph = maker .graph ;
const io = graph .io ;
try fuzz .queue_mutex .lock (io );
defer fuzz .queue_mutex .unlock (io );
while (true ) {
try fuzz .queue_cond .wait (io , &fuzz .queue_mutex );
for (fuzz .msg_queue .items ) |msg | switch (msg ) {
.coverage => |coverage | prepareTables (fuzz , coverage .run , coverage .id ) catch |err | switch (err ) {
error .AlreadyReported => continue ,
error .Canceled => return ,
else => |e | log .err ("failed to prepare code coverage tables: {t}" , .{e }),
},
.entry_point => |entry_point | addEntryPoint (fuzz , entry_point .coverage_id , entry_point .addr ) catch |err | switch (err ) {
error .AlreadyReported => continue ,
error .Canceled => return ,
else => |e | log .err ("failed to prepare code coverage tables: {t}" , .{e }),
},
};
fuzz .msg_queue .clearRetainingCapacity ();
}
}