On Sun, Nov 09, 2025 at 06:15:33PM +0100, Oleg Nesterov wrote:
..
> static int kill_sub_threads(struct task_struct *tsk)
> {
> struct signal_struct *sig = tsk->signal;
> int err = -EINTR;
>
> read_lock(&tasklist_lock);
> spin_lock_irq(&tsk->sighand->siglock);
> if (!((sig->flags & SIGNAL_GROUP_EXIT) || sig->group_exec_task)) {
> sig->group_exec_task = tsk;
> sig->notify_count = -zap_other_threads(tsk);
Hi Oleg! I somehow manage to miss a moment -- why negative result here?
> err = 0;
> }
> spin_unlock_irq(&tsk->sighand->siglock);
> read_unlock(&tasklist_lock);
>
> return err;
> }
p.s. i've dropped long CC but left ML intact)
Cyrill