summaryrefslogtreecommitdiff
path: root/src/clock.c
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2021-06-01 11:10:26 +0800
committerGitHub <[email protected]>2021-06-01 11:10:26 +0800
commit84fb09230f7795e5ae151489feff044b47d4fd7b (patch)
tree970e88a318d02da8565268deb99b16f0496d539f /src/clock.c
parent472be15404b5ab12803aa34e8772cad40dce3059 (diff)
parent37960723b8fe6c91d14c7c4c1c30a97d17e0033b (diff)
Merge pull request #4741 from geniusgogo/fix_tick_increase
🐛 🐛 **It is strongly recommended to upgrade with all versions of the relevant code.** fix rt_tick_increase critical code protection
Diffstat (limited to 'src/clock.c')
-rw-r--r--src/clock.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/clock.c b/src/clock.c
index 0880d8d241..8746d463c1 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -76,10 +76,14 @@ void rt_tick_increase(void)
-- thread->remaining_tick;
if (thread->remaining_tick == 0)
{
+ rt_base_t level;
+
/* change to initialized tick */
thread->remaining_tick = thread->init_tick;
+ level = rt_hw_interrupt_disable();
thread->stat |= RT_THREAD_STAT_YIELD;
+ rt_hw_interrupt_enable(level);
rt_schedule();
}