用途:为构建自定义 AsyncSequence、把同步或回调式 API 桥接到 async/await、实现 channel、缓冲区与多消费者广播、处理生产者/消费者背压,以及实现迟订阅者能收到缓存值的 CurrentValue 语义提供模式参考。
主要能力:以枚举状态机建模异步行为,状态变更返回 Action,副作用在锁外执行;用 Synchronization 框架的 Mutex 保护状态(需 iOS 18+、macOS 15+),final class 持有 Mutex,State 结构体保持 Sendable;用 withTaskCancellationHandler 处理取消,锁内取出 continuation、锁外 resume;显式建模 bounded、unbounded、bufferingNewest、bufferingOldest 等缓冲策略;用 SingleValueBufferedStream 实现单值缓存与订阅者替换;用 final class 包装配合 deinit 取消迭代;测试中用 Gate 同步生产者与消费者,并确保调用 finish() 终止流。
使用方式:按资料中的模式组织代码,例如在 send 中先于锁内计算动作,再于锁外 yield;订阅与取消路径同样先取 continuation 再恢复。
限制与注意:避免无同步的 @unchecked Sendable、把 State 设为 ~Copyable、在锁内 resume continuation、测试中忽略流终止、订阅与首个事件之间的竞态。资料未提供安装命令、包版本或平台之外的收费信息。