tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pg_jobc going negative?



On Fri 10 Jul 2020 at 20:41:40 +0700, Robert Elz wrote:
> As best I can work out, and someone correct me if I'm wrong,
> the whole purpose of pg_jobc is so that orphanpg() can be called
> when a process group is orphaned (no longer has a session leader).
> 
> If it has any other use, I cannot see it.

It also seems to be involved in deciding wether to send a SIGTTOU or
SIGTTIN to a process (i.e., to suspend a process if it tries to
read from the tty, but it is in the background).
In sys/kern/tty.c and sys/kern/tty_pty.c.

> Or, we could properly define what pg_jobc is counting, and then make sure
> that it counts whatever that is properly - is incremented in all the
> appropriate places, and decremented properly as well.   Currently
> the comment about it in proc.h is:
>         /*
>          * Number of processes qualifying
> 	 * pgrp for job control 
>          */
> which makes it clear that it is a reference counter (not necessarily
> counting the number of something which exists, so that something can be 
> deleted, but it is counting references to processes).   Unfortunately
> I have no idea what "qualifying pgrp for job control" is supposed to mean.

I found this above fixjobc() which goes into a bit more detail what is
being counted:

/*
 * Adjust pgrp jobc counters when specified process changes process group.
 * We count the number of processes in each process group that "qualify"
 * the group for terminal job control (those with a parent in a different
 * process group of the same session).  If that count reaches zero, the
 * process group becomes orphaned.  Check both the specified process'
 * process group and that of its children.

-Olaf.
-- 
Olaf 'Rhialto' Seibert -- rhialto at falu dot nl
___  Anyone who is capable of getting themselves made President should on
\X/  no account be allowed to do the job.       --Douglas Adams, "THGTTG"

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index