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/ › Threaded.zig › unlockStderr
unlockStderr
Threaded.unlockStderr
fn unlockStderr (userdata : ?*anyopaque ) void
File
Code
fn unlockStderr (userdata : ?*anyopaque ) void {
const t : *Threaded = @ptrCast (@alignCast (userdata ));
if (t .stderr_writer .err == null ) t .stderr_writer .interface .flush () catch {};
if (t .stderr_writer .err ) |err | {
switch (err ) {
error .Canceled => recancelInner (),
else => {},
}
t .stderr_writer .err = null ;
}
t .stderr_writer .interface .end = 0 ;
t .stderr_writer .interface .buffer = &.{};
t .stderr_mutex_lock_count -= 1 ;
if (t .stderr_mutex_lock_count == 0 ) {
@atomicStore (std .Thread .Id , &t .stderr_mutex_locker , Thread .invalid_id , .unordered );
mutexUnlock (&t .stderr_mutex );
}
}