fix(epoll): 修复epoll超时唤醒机制,确保定时器通过Waker唤醒等待队列#1492
Merged
fslongjin merged 1 commit intoDragonOS-Community:masterfrom Dec 18, 2025
Merged
fix(epoll): 修复epoll超时唤醒机制,确保定时器通过Waker唤醒等待队列#1492fslongjin merged 1 commit intoDragonOS-Community:masterfrom
fslongjin merged 1 commit intoDragonOS-Community:masterfrom
Conversation
- 重构定时器创建逻辑,使用EpollTimeoutWaker结构体实现TimerFunction - 将超时唤醒方式从直接唤醒PCB改为通过Waker::wake()触发 Signed-off-by: longjin <longjin@DragonOS.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
通过这个PR, DragonOS可以正常的在busybox vi里面从编辑模式按下esc,退出到普通模式。
之前卡死的原因是,busybox vi的
read_key()在读到 ESC(27) 后会用 poll(..., 50ms) 再读几个字节来判断是不是方向键序列;如果 DragonOS 的 poll/epoll_wait 超时不起作用,就会卡在“等后续字节”的状态里,表现为你按了 Esc 但无法进入普通模式、也就打不出:wq