diff options
| author | Bernard Xiong <[email protected]> | 2021-06-01 11:10:26 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-06-01 11:10:26 +0800 |
| commit | 84fb09230f7795e5ae151489feff044b47d4fd7b (patch) | |
| tree | 970e88a318d02da8565268deb99b16f0496d539f | |
| parent | 472be15404b5ab12803aa34e8772cad40dce3059 (diff) | |
| parent | 37960723b8fe6c91d14c7c4c1c30a97d17e0033b (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
| -rw-r--r-- | src/clock.c | 4 |
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(); } |
