Commit Graph

1 Commits

Author SHA1 Message Date
LoGin fa4d785eaa
feat(kernel/posix-timer): 实现 POSIX interval timer,修复 gVisor timers_test (#1501)
- 新增 timer_create/timer_settime/timer_gettime/timer_getoverrun/timer_delete 系统调用处理,并接入 syscall table
- 实现进程级 POSIX interval timer:基于 CLOCK_MONOTONIC 的创建/删除/设置/查询、周期性重装与到期调度
- 完整实现 SIGEV_NONE/SIGEV_SIGNAL/SIGEV_THREAD_ID(限制 THREAD_ID 只能指向当前线程)与 SI_TIMER siginfo(含 si_timerid/si_overrun/si_value)
- 修复 overrun 语义与信号合并:按线程 pending 队列合并并累积 overrun,避免重复入队导致进程被信号杀死
- 修复周期性 timer 的 gettime 剩余时间计算与回调窗口返回 0 的问题(PeriodicSilent)
- 修复定时器回调中信号锁/队列访问导致的自锁死(PeriodicGroupDirectedSignal)
- clear_child_tid/robust futex 相关用户内存访问改为异常表保护,并避免在失败时继续 futex 操作

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-18 20:37:40 +08:00