Compare commits

..

1 Commits

Author SHA1 Message Date
72349459ec feat(channel): impl peek() 2023-05-23 01:38:15 -05:00

View File

@@ -78,6 +78,16 @@ fn Channel(comptime T: type) type {
return value;
}
pub fn peek(self: *const Self) ?T {
const read_idx = self.read.load(.Acquire);
const write_idx = self.write.load(.Acquire);
if (read_idx == write_idx) return null;
std.atomic.fence(.Acquire);
return self.buf[self.mask(read_idx)];
}
pub fn len(self: *const Self) Index {
const read_idx = self.read.load(.Acquire);
const write_idx = self.write.load(.Acquire);