nuttx/sched/group
chao an 87f134cfaa sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
Nuttx currently has 2 types of sleep interfaces:

1. Signal-scheduled sleep: nxsig_sleep() / nxsig_usleep() / nxsig_nanosleep()
Weaknesses:
a. Signal-dependent: The signal-scheduled sleep method is bound to the signal framework, while some driver sleep operations do not depend on signals.
b. Timespec conversion: Signal-scheduled sleep involves timespec conversion, which has a significant impact on performance.

2. Busy sleep: up_mdelay() / up_udelay()
Weaknesses:
a. Does not actively trigger scheduling, occupy the CPU loading.

3. New interfaces: Scheduled sleep: nxsched_sleep() / nxsched_usleep() / nxsched_msleep() / nxsched_ticksleep()
Strengths:
a. Does not depend on the signal framework.
b. Tick-based, without additional computational overhead.

Currently, the Nuttx driver framework extensively uses nxsig_* interfaces. However, the driver does not need to rely on signals or timespec conversion.
Therefore, a new set of APIs is added to reduce dependencies on other modules.

(This PR also aims to make signals optional, further reducing the code size of Nuttx.)

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-10-17 14:05:02 +08:00
..
CMakeLists.txt Rename group_argvstr to nxtask_argvstr 2024-10-10 23:13:37 +08:00
group.h sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_childstatus.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
group_continue.c sched: After nxsched_add_readytorun, change first parameter to up_switch_context to this_task() 2025-08-20 10:16:43 +08:00
group_create.c fs/vfs: Separate file descriptors from file descriptions 2025-06-12 18:12:42 +08:00
group_exitinfo.c sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
group_foreachchild.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_free.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_getegid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_geteuid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_getgid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_getuid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_join.c sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
group_killchildren.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
group_leave.c fs/vfs: Separate file descriptors from file descriptions 2025-06-12 18:12:42 +08:00
group_malloc.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_realloc.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_setegid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_seteuid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_setgid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_setuid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_setupidlefiles.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_setuptaskfiles.c bugfix: share kernel thread group should not dup files from caller group 2025-06-27 21:45:33 +08:00
group_signal.c Fix signal delivered to a wrong thread 2025-05-08 21:32:35 +08:00
group_suspendchildren.c sched/group: There is no need to use sched_[un]lock 2024-10-09 13:46:33 +08:00
group_waiter.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
group_zalloc.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
Make.defs Rename group_argvstr to nxtask_argvstr 2024-10-10 23:13:37 +08:00