1 个不稳定版本
0.1.0 | 2023年10月27日 |
---|
#825 in WebAssembly
10KB
141 行
非阻塞通道
此crate提供了一个基于ringbuf
构建的SPSC通道实现,保证即使在几个循环中也不会阻塞。它还允许将发送者提升为MPSC发送者,但MPSC发送者有可能在非常短的时间内阻塞。
此crate旨在特定用于WebAssembly项目,以替换主线程上的其他通道。
当前的Rust通道实现,如std::sync::mpsc
或flume
,具有如try_recv
之类的锁方法。然而,由于重新分配或其他实现细节,它们仍然有可能在几个循环中阻塞。这通常不是问题,因为具有锁时间上限的实现等价于无锁实现,但是在浏览器中运行WebAssembly稍微严格一些 - 主线程不允许调用atomic.wait
任何,即使等待只持续几个循环。
依赖关系
~240KB