Messages in this thread Patch in this message | | | Date | Sat, 26 Aug 2023 13:14:06 +0200 | From | Oleg Nesterov <> | Subject | [PATCH 1/2] change thread_group_empty() to use task_struct->thread_node |
| |
It could use list_is_singular() but this way it is cheaper. Plus the thread_group_leader() check makes it clear that thread_group_empty() can only return true if p is a group leader. This was not immediately obvious before this patch.
task_struct->thread_group no longer has users, it can die.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> --- include/linux/sched/signal.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h index cffc882d367f..d7fa3ca2fa53 100644 --- a/include/linux/sched/signal.h +++ b/include/linux/sched/signal.h @@ -733,7 +733,8 @@ static inline struct task_struct *next_thread(struct task_struct *p) static inline int thread_group_empty(struct task_struct *p) { - return list_empty(&p->thread_group); + return thread_group_leader(p) && + list_is_last(&p->thread_node, &p->signal->thread_head); } #define delay_group_leader(p) \ -- 2.25.1.362.g51ebf55
| |