DragonOS/docs/kernel/ipc
LoGin 878033ceff
refactor(ipc): 重构信号处理逻辑,优化锁顺序并简化接口 (#1694)
* refactor(ipc): 重构信号处理逻辑,优化锁顺序并简化接口

- 在`ProcessControlBlock`中新增`dequeue_pending_signal`
方法,统一处理线程与进程共享信号队列,遵循`sighand -> sig_info`
的锁顺序以避免死锁
- 移除`ProcessSignalInfo::dequeue_signal`方法,替换为更明确的
`dequeue_thread_signal`,仅处理线程私有信号
- 简化`recalc_sigpending`方法签名,移除可选的`siginfo_guard`参数,内部统一获取锁
- 更新`do_signal`、`signalfd`、`sys_rt_sigtimedwait`
等调用点以使用新接口,消除冗余锁操作
- 在`Sighand`结构体中添加`inner_read`方法以支持上述锁顺序

Signed-off-by: longjin <longjin@DragonOS.org>

* add doc

* fix(net): 修复TCP套接字事件通知和关闭流程

- 在`incoming()`方法中增加对EPOLLHUP和EPOLLERR事件的检查
- 在关闭流程中显式释放writer并触发通知
- 在接收和发送数据成功后调用`notify()`方法更新事件状态
- 修改事件检查逻辑,使用`intersects()`替代`contains()`以支持多事件判断

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-22 00:23:21 +08:00
..
index.rst feat: 实现 Restartable Sequences (rseq) 机制 (#1565) 2025-12-27 20:34:35 +08:00
ipc_namespace.md feat(ipc): 实现IPC命名空间初步支持 (#1288) 2025-09-24 16:15:09 +08:00
rseq.md feat: 实现 Restartable Sequences (rseq) 机制 (#1565) 2025-12-27 20:34:35 +08:00
signal.md refactor(ipc): 重构信号处理逻辑,优化锁顺序并简化接口 (#1694) 2026-01-22 00:23:21 +08:00