Commit Graph

4 Commits

Author SHA1 Message Date
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
LoGin 073432f930
feat: 实现 Restartable Sequences (rseq) 机制 (#1565)
Docs Translation / translate-and-pr (push) Waiting to run Details
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
- 新增 rseq 内核支持,包括系统调用、进程状态管理和用户态辅助向量
- 在调度、信号处理和异常返回路径中集成 rseq 事件处理
- 添加 rseq 相关文档和测试用例
- 修复用户栈扩展逻辑中的边界检查问题
- 调整 Makefile 构建选项以支持测试

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-27 20:34:35 +08:00
LoGin ef296a34e1
feat(ipc): 实现IPC命名空间初步支持 (#1288)
* feat(ipc): 实现IPC命名空间第一阶段支持

- 添加IpcNamespace结构体并集成到NsProxy中
- 将全局SHM_MANAGER重构为per-ns ShmManager
- 修改shm相关系统调用以支持命名空间隔离
- 添加VMA的shm_id字段用于精确维护映射计数
- 新增IPC命名空间测试用例
- 更新相关文档

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

* fmt

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-09-24 16:15:09 +08:00
login 9983902105
新增signal文档 (#126)
* 新增signal文档
2022-12-24 23:30:26 +08:00