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 standard library.
std › Io › Threaded › Group › Task › create Private Function create Doc Source Private Function std.Io.Threaded.Group.Task.create
fn create (
gpa : Allocator ,
group : Group ,
context : []const u8 ,
context_alignment : Alignment ,
func : *const fn (context : *const anyopaque ) void ,
) Allocator .Error !*Task Params gpa : Allocator group : Group context : []const u8 context_alignment : Alignment func : *const fn (context : *const anyopaque ) void File Io/Threaded.zig: 493
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519 fn create (
gpa : Allocator ,
group : Group ,
context : []const u8 ,
context_alignment : Alignment ,
func : *const fn (context : *const anyopaque ) void ,
) Allocator .Error !*Task {
const max_context_misalignment = context_alignment .toByteUnits () -| @alignOf (Task );
const worst_case_context_offset = context_alignment .forward (@sizeOf (Task ) + max_context_misalignment );
const alloc_len = worst_case_context_offset + context .len ;
const task : *Task = @ptrCast (@alignCast (try gpa .alignedAlloc (u8 , .of (Task ), alloc_len )));
errdefer comptime unreachable ;
task .* = .{
.runnable = .{
.node = undefined ,
.startFn = &start ,
},
.group = group .ptr ,
.func = func ,
.context_alignment = context_alignment ,
.alloc_len = alloc_len ,
};
@memcpy (task .contextPointer ()[0 ..context .len ], context );
return task ;
}
Task.runnable.nodeisundefinedin the createdTask.