You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
setpgid forms a real unit, kill(-n) reaches it, and a spawn can chdir
Three calls a shell runner makes, each of which used to succeed and change
nothing a caller could observe --- which is the failure shape this port names in
okm_opt.h and had three more instances of.
`setpgid(0, 0)' answered 0 and formed nothing. True in a world with no groups, so
it was not a lie; it was also not a unit, and the caller's next act ---
`kill(-pid)' --- found nothing to kill. It is now `kal_process_job_enter'.
`kill(-n)' answered ESRCH while a unit existed. It now names the unit: the one
this program formed, or the one a start formed for a child. ⚠️ THE UNIT IS KEPT
PAST THE WAIT, and that is the case a unit is used FOR --- a shell exits at once
and the work it backgrounded is what a timeout has to reach. Clearing it on the
wait made this answer ESRCH a fraction of a second before every caller that
wants it; measured, the background work survived.
`posix_spawn_file_actions_addchdir_np' was refused along with everything this
file could not express. openkal 0.11 gives a spawn a second directory, so both
chdir actions are now answered.
⚠️ `POSIX_SPAWN_SETPGROUP' is honoured only in the form this port can mean: a
zero group asks for a unit of the program's own, which is exactly
`kal_spawn.job'. A NAMED group stays refused --- openkal cannot put a program into
somebody else's unit, and turning that request into a different one quietly is
the defect above with a fourth instance.
⚠️⚠️ AND ONE IDIOM REMAINS OUT OF REACH, WHICH IS RECORDED AND NOT APPROXIMATED.
`fork(); setpgid(0, 0); exec…' forms a unit led by the program the COPY starts,
whose identity the original never learns --- so the original's `kill(-pid)' names
a group that is not the one that exists. Closing it needs the copy and its parent
to agree on a name before either exists, which nothing here can arrange.
`posix_spawn' with the attribute above is the form that works, and it is what the
consumer moved to.
0 commit comments