summaryrefslogtreecommitdiff
path: root/src/scheduler.c
diff options
context:
space:
mode:
authorwangxiaoyao <[email protected]>2023-02-20 13:39:34 +0800
committerguo <[email protected]>2023-02-21 08:48:49 +0800
commited58f6676d074ec9f66ea78e23d1e1657c9fef20 (patch)
tree0b24af0f5a0244e17abc3cef14abe2dd746248cf /src/scheduler.c
parent29c7278edc8bd47f0263143cf85568c8c0e6e61e (diff)
[src] add assertion for debugging
Diffstat (limited to 'src/scheduler.c')
-rw-r--r--src/scheduler.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/scheduler.c b/src/scheduler.c
index c62a6d143c..c760fa8ed9 100644
--- a/src/scheduler.c
+++ b/src/scheduler.c
@@ -666,6 +666,7 @@ void rt_scheduler_do_irq_switch(void *context)
#endif /* RT_USING_OVERFLOW_CHECK */
RT_DEBUG_LOG(RT_DEBUG_SCHEDULER, ("switch in interrupt\n"));
+ RT_ASSERT(current_thread->cpus_lock_nest > 0);
current_thread->cpus_lock_nest--;
current_thread->scheduler_lock_nest--;
@@ -941,6 +942,7 @@ void rt_enter_critical(void)
{
rt_uint16_t lock_nest = current_thread->cpus_lock_nest;
current_thread->cpus_lock_nest++;
+ RT_ASSERT(current_thread->cpus_lock_nest != 0);
if (lock_nest == 0)
{
current_thread->scheduler_lock_nest ++;
@@ -999,6 +1001,7 @@ void rt_exit_critical(void)
current_thread->critical_lock_nest --;
+ RT_ASSERT(current_thread->cpus_lock_nest > 0);
current_thread->cpus_lock_nest--;
if (current_thread->cpus_lock_nest == 0)
{