summaryrefslogtreecommitdiff
path: root/src/thread.c
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-12-24 16:24:45 -0500
committerBernard Xiong <[email protected]>2021-12-30 01:30:21 +0800
commite6cd32a1adf5417b54c11c6ee015a5f2a9764989 (patch)
treee184f736e8a5922b0fe5f0e85dc8183fcadfeb46 /src/thread.c
parent8aee6e73c9b9b6df6e1b6cb0ac3f2984eb89d49f (diff)
[kernel] 将rt_thread_timeout设置为私有函数
Diffstat (limited to 'src/thread.c')
-rw-r--r--src/thread.c77
1 files changed, 38 insertions, 39 deletions
diff --git a/src/thread.c b/src/thread.c
index d1eb2d01e5..090f5f1ef7 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -105,6 +105,43 @@ static void _thread_exit(void)
rt_schedule();
}
+/**
+ * @brief This function is the timeout function for thread, normally which is invoked
+ * when thread is timeout to wait some resource.
+ *
+ * @param parameter is the parameter of thread timeout function
+ */
+static void _thread_timeout(void *parameter)
+{
+ struct rt_thread *thread;
+ register rt_base_t temp;
+
+ thread = (struct rt_thread *)parameter;
+
+ /* thread check */
+ RT_ASSERT(thread != RT_NULL);
+ RT_ASSERT((thread->stat & RT_THREAD_STAT_MASK) == RT_THREAD_SUSPEND);
+ RT_ASSERT(rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread);
+
+ /* disable interrupt */
+ temp = rt_hw_interrupt_disable();
+
+ /* set error number */
+ thread->error = -RT_ETIMEOUT;
+
+ /* remove from suspend list */
+ rt_list_remove(&(thread->tlist));
+
+ /* insert to schedule ready list */
+ rt_schedule_insert_thread(thread);
+
+ /* enable interrupt */
+ rt_hw_interrupt_enable(temp);
+
+ /* do schedule */
+ rt_schedule();
+}
+
static rt_err_t _thread_init(struct rt_thread *thread,
const char *name,
void (*entry)(void *parameter),
@@ -173,7 +210,7 @@ static rt_err_t _thread_init(struct rt_thread *thread,
/* initialize thread timer */
rt_timer_init(&(thread->thread_timer),
thread->name,
- rt_thread_timeout,
+ _thread_timeout,
thread,
0,
RT_TIMER_FLAG_ONE_SHOT);
@@ -855,44 +892,6 @@ rt_err_t rt_thread_resume(rt_thread_t thread)
RTM_EXPORT(rt_thread_resume);
/**
- * @brief This function is the timeout function for thread, normally which is invoked
- * when thread is timeout to wait some resource.
- *
- * @param parameter is the parameter of thread timeout function
- */
-void rt_thread_timeout(void *parameter)
-{
- struct rt_thread *thread;
- register rt_base_t temp;
-
- thread = (struct rt_thread *)parameter;
-
- /* thread check */
- RT_ASSERT(thread != RT_NULL);
- RT_ASSERT((thread->stat & RT_THREAD_STAT_MASK) == RT_THREAD_SUSPEND);
- RT_ASSERT(rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread);
-
- /* disable interrupt */
- temp = rt_hw_interrupt_disable();
-
- /* set error number */
- thread->error = -RT_ETIMEOUT;
-
- /* remove from suspend list */
- rt_list_remove(&(thread->tlist));
-
- /* insert to schedule ready list */
- rt_schedule_insert_thread(thread);
-
- /* enable interrupt */
- rt_hw_interrupt_enable(temp);
-
- /* do schedule */
- rt_schedule();
-}
-RTM_EXPORT(rt_thread_timeout);
-
-/**
* @brief This function will find the specified thread.
*
* @note Please don't invoke this function in interrupt status.