nuttx/sched
chenrun1 a6dc4412ba misc/rwlock:Implementing read/write locks.
A new locking mechanism: read/write locks
When there is a writer it is not possible to put on a read lock or a write lock; when there is a reader it is possible to reenter the read lock but not the write lock.
Writers are exclusive locks, readers are shared locks.
At the same time through the waiter count to determine whether there is currently a blocked task, if there is then in the unlock time to wake up all the waiter, through the priority of the competition to complete the blocked lock execution.
For example:
When we have a reader blocking two waiter writers, when the reader is unlocked it wakes up both writers. The writer with higher priority wakes up and checks for a successful condition and locks the lock, the second writer wakes up and fails to check for a condition and continues to block the lock.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-12-02 19:43:19 -08:00
..
addrenv cmake:complete missing changes during cmake reforming for sched 2023-09-08 21:20:16 +03:00
clock adjtime: Rewrite implementation to work for RTC and tickless kernel 2023-11-14 19:47:40 -08:00
environ env_dup: fix issue about USE_AFTER_FREE 2023-10-26 00:11:14 +08:00
group sched/taskfiles: skip unnecessary file open/close operations to improve performance 2023-11-16 07:30:36 -08:00
init sched/taskfiles: skip unnecessary file open/close operations to improve performance 2023-11-16 07:30:36 -08:00
irq spinlock: implement read writer spinlock 2023-10-16 08:55:01 +08:00
misc task/pthread_cancelpt: Move cancel point handling to libc, data to TLS 2023-11-15 08:52:04 -08:00
module libs/libc: fix compile warning about modlib_depend when CONFIG_MODLIB_MAXDEPEND = 0 2023-10-26 01:53:38 +08:00
mqueue mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
paging build: add initial cmake build system 2023-07-08 13:50:48 +08:00
pthread task/pthread_cancelpt: Move cancel point handling to libc, data to TLS 2023-11-15 08:52:04 -08:00
sched sched: delete check when pick nexttcb in readytorun list 2023-11-24 12:43:54 +09:00
semaphore misc/rwlock:Implementing read/write locks. 2023-12-02 19:43:19 -08:00
signal sigaction: Expand si_user for non-kernel signals 2023-11-22 08:00:43 -08:00
task task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00
timer Replace enter_critical_section with spin_irqsave 2023-10-21 11:00:07 +08:00
tls libc: add support for custom streams with fopencookie() 2023-10-18 21:13:01 +08:00
wdog clock: replace all up_perf_xx with perf_xx 2023-10-02 16:11:43 +02:00
wqueue clock: replace all up_perf_xx with perf_xx 2023-10-02 16:11:43 +02:00
CMakeLists.txt build: add initial cmake build system 2023-07-08 13:50:48 +08:00
Kconfig adjtime: Rewrite implementation to work for RTC and tickless kernel 2023-11-14 19:47:40 -08:00
Makefile group/group_addrenv: Move address environment from group -> tcb 2023-02-08 02:51:23 +08:00