Commit Graph

2 Commits

Author SHA1 Message Date
LoGin 7d2a6f7e44
refactor: 重构 RwSem 和 WaitQueue 实现,解决并发冲突问题 (#1637)
- 重构 RwSem 状态表示,使用 64 位原子整数和位域编码
- 新增可升级读锁支持,提供原子升级/降级功能
- 重构 WaitQueue 核心机制,以 wait_until 为基础 API 消除唤醒丢失
- 统一等待队列设计,使用单一队列管理所有等待者
- 优化锁获取性能,实现快速路径和慢速路径分离

Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 14:30:35 +08:00
LoGin f6eeef4f74
feat(libs): 新增可睡眠读写信号量RwSem (#1589)
- 新增RwSem读写信号量实现,支持进程上下文阻塞获取锁
- 提供读/写锁的阻塞/非阻塞获取接口,支持可中断等待
- 实现写锁降级功能,支持原子降级为读锁
- 采用写者优先策略,防止写者饥饿
- 更新多个驱动模块,将RwLock替换为RwSem以支持睡眠等待
- 新增设计文档rwsem.md说明实现细节

Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-01 15:39:56 +08:00