zig
语言线程安全的LockedFifo
这些代码提供一个基于zig
标准库std.fifo.LinearFifo
创建的带锁的线程安全的LockedFifo
类型,性质类似go
语言中的channel
,用于线程间的通讯。
使用者通过调用函数LockedFifo(comptime T: type, comptime cache_size: isize) type
获取该类型,具体用法可以参考src/lockedfifo_test.zig
中的测试代码lockedfifo_main()
和receiver(...)
两个函数。
注意:cache_size
参数应该大于0
,如果小于(包含)0
,将会自动设置成10
。
cd src && zig test lockedfifo_test.zig
LockedFifo
提供的函数:pub fn LockedFifo(comptime T: type, comptime cache_size: isize) type
pub fn writeItem(self: *Self, item: T) !void
pub fn readItem(self: *Self) !T
pub fn close(self: *Self) void
pub fn deinit(self: *Self) void