summaryrefslogtreecommitdiff
path: root/src/thread.c
AgeCommit message (Collapse)Author
2024-06-29[src][thread]fix rt_thread_resume return value error (#9114)zms123456
fix rt_thread_resume return value error
2024-05-28[arm64] add hw thread self (#8942)Shell
* [libcpu] arm64: Add hardware thread_self support This patch introduces hardware-based thread self-identification for the AArch64 architecture. It optimizes thread management by using hardware registers to store and access the current thread's pointer, reducing overhead and improving overall performance. Changes include: - Added `ARCH_USING_HW_THREAD_SELF` configuration option. - Modified `rtdef.h`, `rtsched.h` to conditionally include `critical_switch_flag` based on the new config. - Updated context management in `context_gcc.S`, `cpuport.h` to support hardware-based thread self. - Enhanced `scheduler_mp.c` and `thread.c` to leverage the new hardware thread self feature. These modifications ensure better scheduling and thread handling, particularly in multi-core environments, by minimizing the software overhead associated with thread management. Signed-off-by: Shell <[email protected]> * fixup: address suggestion * fixup: rt_current_thread as global * scheduler: add cpu object for UP scheduler Also, maintain the rt_current_thread in cpu object on UP scheduler. --------- Signed-off-by: Shell <[email protected]>
2024-05-16[libcpu/arm64] add C11 atomic ticket spinlock (#8882)Shell
* [libcpu/arm64] add C11 atomic ticket spinlock Replace the former implementation of flag-based spinlock which is unfair Besides, C11 atomic implementation is more readable (it's C anyway), and maintainable. Cause toolchain can use their builtin optimization and tune for different micro-architectures. For example armv8.5 introduces a better instruction. The compiler can help with that when it knows your target platform in support of it. Signed-off-by: Shell <[email protected]> * fixup: RT_CPUS_NR --------- Signed-off-by: Shell <[email protected]>
2024-05-10[smart] fixup arm64 aspace switch (#8925)Shell
* [smart] fixup arm64 aspace switch Signed-off-by: Shell <[email protected]> * fixup: arm add arch_kernel_mmu_table_get --------- Signed-off-by: Shell <[email protected]>
2024-05-01[kernel] add rt_thread_close()Shell
* [thread] Add rt_thread_close() This patch introduces a new function `rt_thread_close()` to enhances the usability and maintainability by providing a dedicated mechanism for closing threads. - A new function `rt_thread_close()` is added to the API, providing a standardized approach for closing threads. - The `rt_thread_close()` function removes a thread from the thread queue, updates its status to indicate closure, and performs the thread timer detaching which is a embedded timer in thread object. - Additionally, the `rt_thread_detach()` function is modified to utilize `rt_thread_close()` internally, streamlining the thread detachment process. Signed-off-by: Shell <[email protected]>
2024-04-16[fix] 添加创建线程函数时间片参数检查 (#8807)Yaochenger
2024-02-23🎯 Sync smart & scheduler codes (#8537)Shell
Signed-off-by: Shell <[email protected]> Co-authored-by: xqyjlj <[email protected]>
2024-02-19[kernel] fix some strict compiling warningsMeco Man
2024-01-05✨ feat: delete thread ref (#8456)xqyjlj
2024-01-02🐞 fix(thread): fix thread sleep (deadlock)xqyjlj
2024-01-02[kernel] support for hook listShell
Signed-off-by: Shell <[email protected]>
2023-12-27🐞 fix: fix rt_thread_delay, assert, deadlock (#8366)xqyjlj
2023-12-24🐞 fix(thread): fix thread_exit/detach/delete (#8365)xqyjlj
2023-12-24Fix softtimer resume (#8393)geniusgogo
2023-12-07[kernel] release mutex when thread delete (#8345)Yuqiang Wang
2023-12-06release mutex when thread deleteskychen123
2023-10-30实现MPU抽象层 (#8080)tangzz98
- 为RT-Thread设计MPU抽象层,支持ARMV7-M,ARMV8-M架构,让用户使用MPU检测栈溢出等内存问题,实现线程内存隔离 - 在components/mp目录下提供通用的API,libcpu目录下提供各处理器架构的具体实现 - 在STM32U575 NUCLEO, STM32H75 NUCLEO开发板测试通过
2023-10-25🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)xqyjlj
Signed-off-by: Shell <[email protected]> Co-authored-by: Shell <[email protected]>
2023-10-17Sync dfs lwp (#8123)geniusgogo
2023-09-15[src] remove useless codes in kernelShell
Signed-off-by: Shell <[email protected]>
2023-07-20[component/lwp] support more feature of signal from IEEE Std 1003.1-2017 (#7828)Shell
Signed-off-by: Shell <[email protected]>
2023-07-09[debug] remove RT_DEBUG_xxxMeco Man
remove RT_DEBUG_THREAD RT_DEBUG_SCHEDULER RT_DEBUG_IPC RT_DEBUG_TIMER RT_DEBUG_IRQ RT_DEBUG_MEM RT_DEBUG_SLAB RT_DEBUG_MEMHEAP
2023-06-29[include][dbg]update: no longer use RT_DEBUG_LOG in rtdebug.h (#7750)Shicheng Chu
2023-05-17[include][src] Add API to get object name and thread name (#7507)Fan Yang
Signed-off-by: Fan YANG <[email protected]> Co-authored-by: Man, Jianting (Meco) <[email protected]>
2023-05-17[kernel][src] improve code (#7367)半吊子内核开发
2023-04-28[HUST CSE][kernel][thread] 变量 rt_err 没有初始化 (#7401)Pikachu
2023-04-04[kernel] 将rt_thread结构体改为显式继承rt_object (#7131)Shicheng Chu
2023-02-02[doxygen] Fix some warnings in doxygen (#6899)tuduweb
2022-12-16[rt-smart] 弱化 RT_USING_LWP,使用 RT_USING_SMART 作为宏配置 (#6740)guo
* [dfs] sync cromfs * [rt-smart]Weaken RT_USING_LWP, use RT_USING_SMART as macro configuration * [format] fix some format issue.
2022-12-03sync branch rt-smart. (#6641)guo
* Synchronize the code of the rt mart branch to the master branch. * TTY device * Add lwP code from rt-smart * Add vnode in DFS, but DFS will be re-write for rt-smart * There are three libcpu for rt-smart: * arm/cortex-a, arm/aarch64 * riscv64 Co-authored-by: Rbb666 <[email protected]> Co-authored-by: zhkag <[email protected]>
2022-10-15[Kernel] Add nested mutex featureBernard Xiong
2022-08-31[kernel] 当tick为0时rt_thread_sleep不应该挂起线程Ylne
2022-08-31[kernel] 为rt_thread_sleep添加上下文检查Ylne
2022-08-07[fix] the risk for function exit() when open pthread support. (#6229)xiangxistu
* [fix] the risk for function exit() when open pthread support. * [update] modify annotation from "user data" to "pthread_data".
2022-06-02[fix] remove the executable permission of thread.c (#6001)Jianhui Zhao
Signed-off-by: Jianhui Zhao <[email protected]>
2022-04-29[kernel] update comments for rt_thread_suspend (#5887)Man, Jianting (Meco)
* [kernel] update comments for rt_thread_suspend
2022-04-29[kernel] beautify code (#5890)Man, Jianting (Meco)
2022-04-29[kernel] remove the register keyword (#5888)Man, Jianting (Meco)
2022-04-20uniform code writing-disable interruptthewon86
2022-03-11[kernel][thread.c] remove duplicated clear to 0 (#5659)Man, Jianting (Meco)
2022-02-17[Fix bug] fix thread init bug (#4891)Chester guo
When we create thread A by rt_thread_init but do not init the thread object,and then create thread B in the thread A,it maybe crash.
2022-01-25return thread error when resumed by signalthewon86
2022-01-20[kernel] improve commentsMeco Man
2022-01-14[kernel] rt_thread_suspend/resume增加注释Meco Man
2022-01-10Merge branch 'master' into removeinitMan, Jianting (Meco)
2022-01-07move some __on_rt_xxxxx_hook from rtdef.h to dedicated c soure filesGabriel Wang
2021-12-30[kernel] 将rt_thread_timeout设置为私有函数Meco Man
2021-12-30[kernel] rt_thread_suspend增加断言Meco Man
2021-12-27[kernel] remove .init_priorityMeco Man
2021-12-10Merge pull request #5278 from thewon86/masterguo
remove duplicate work between idle and thread_exit