From 5644e716e1c666430696387d42f76c42867296b6 Mon Sep 17 00:00:00 2001 From: LoGin Date: Fri, 7 Mar 2025 12:05:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=A8=E6=8F=92=E5=85=A5=E6=96=B0?= =?UTF-8?q?=E7=9A=84timer=E6=97=B6,=E8=BE=B9=E7=95=8C=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#1091)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头 Signed-off-by: longjin --- .gitignore | 3 ++- kernel/src/time/timer.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4388c930..52e685b5 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,5 @@ cppcheck.xml /target/ Cargo.lock .cache -compile_commands.json \ No newline at end of file +compile_commands.json +/logs/ diff --git a/kernel/src/time/timer.rs b/kernel/src/time/timer.rs index 917502ca..8276db2e 100644 --- a/kernel/src/time/timer.rs +++ b/kernel/src/time/timer.rs @@ -157,7 +157,7 @@ impl Timer { let expire_jiffies = inner_guard.expire_jiffies; let self_arc = inner_guard.self_ref.upgrade().unwrap(); drop(inner_guard); - let mut split_pos: usize = 0; + let mut split_pos: usize = timer_list.len(); for (pos, elt) in timer_list.iter().enumerate() { if Arc::ptr_eq(&self_arc, &elt.1) { warn!("Timer already in list");