summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxqyjlj <[email protected]>2024-01-05 17:03:55 +0800
committerGitHub <[email protected]>2024-01-05 17:03:55 +0800
commit6b6d39d716b21c9f4b72641a0ad3e44685e7bb19 (patch)
treedb6c36dd6f5b736d126a13a2f594ee0b3abfe567 /src
parentdb2cfd335f65e4f3a35121d67c6da62bb23d2e60 (diff)
✨ feat: delete thread ref (#8456)
Diffstat (limited to 'src')
-rw-r--r--src/clock.c3
-rw-r--r--src/cpu.c3
-rw-r--r--src/idle.c4
-rw-r--r--src/thread.c2
4 files changed, 1 insertions, 11 deletions
diff --git a/src/clock.c b/src/clock.c
index 9dd447f3f2..a5f5d5e9f1 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -99,20 +99,17 @@ void rt_tick_increase(void)
/* check time slice */
thread = rt_thread_self();
- rt_get_thread_struct(thread);
level = rt_spin_lock_irqsave(&(thread->spinlock));
rt_atomic_sub(&(thread->remaining_tick), 1);
if (rt_atomic_compare_exchange_strong(&(thread->remaining_tick), &oldval, thread->init_tick))
{
thread->stat |= RT_THREAD_STAT_YIELD;
rt_spin_unlock_irqrestore(&(thread->spinlock), level);
- rt_put_thread_struct(thread);
rt_schedule();
}
else
{
rt_spin_unlock_irqrestore(&(thread->spinlock), level);
- rt_put_thread_struct(thread);
}
/* check timer */
diff --git a/src/cpu.c b/src/cpu.c
index 344a70b32e..686b67a4ea 100644
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -232,11 +232,8 @@ void rt_cpus_lock_status_restore(struct rt_thread *thread)
{
rt_schedule_insert_thread(pcpu->current_thread);
}
- rt_put_thread_struct(pcpu->current_thread);
-
}
pcpu->current_thread = thread;
- rt_get_thread_struct(thread);
}
RTM_EXPORT(rt_cpus_lock_status_restore);
#endif /* RT_USING_SMP */
diff --git a/src/idle.c b/src/idle.c
index 0302a1230d..5e86bdffa4 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -209,10 +209,6 @@ static void rt_defunct_execute(void)
break;
}
- while (rt_atomic_load(&(thread->ref_count)))
- {
- rt_thread_delay(5);
- }
#ifdef RT_USING_MODULE
module = (struct rt_dlmodule*)thread->parent.module_id;
if (module)
diff --git a/src/thread.c b/src/thread.c
index 94180a712c..a2bc74bf6d 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -291,7 +291,7 @@ static rt_err_t _thread_init(struct rt_thread *thread,
#ifdef RT_USING_MODULE
thread->parent.module_id = 0;
#endif /* RT_USING_MODULE */
- rt_atomic_store(&thread->ref_count, 0);
+
rt_spin_lock_init(&thread->spinlock);
RT_OBJECT_HOOKLIST_CALL(rt_thread_inited, (thread));