0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.0572: stopping a job does not work properly on OpenBSD

Problem:    Stopping a job does not work properly on OpenBSD.
Solution:   Do not use getpgid() to check the process group of the job
            processs ID, always pass the negative process ID to kill().
            (George Koehler, closes #3656)
This commit is contained in:
Bram Moolenaar 2018-12-08 14:39:05 +01:00
parent 446e7a3cd3
commit 76ab4fd619
2 changed files with 9 additions and 11 deletions

View File

@ -5820,7 +5820,6 @@ mch_detect_ended_job(job_T *job_list)
mch_signal_job(job_T *job, char_u *how)
{
int sig = -1;
pid_t job_pid;
if (*how == NUL || STRCMP(how, "term") == 0)
sig = SIGTERM;
@ -5841,16 +5840,13 @@ mch_signal_job(job_T *job, char_u *how)
else
return FAIL;
/* TODO: have an option to only kill the process, not the group? */
job_pid = job->jv_pid;
#ifdef HAVE_GETPGID
if (job_pid == getpgid(job_pid))
job_pid = -job_pid;
#endif
/* Never kill ourselves! */
if (job_pid != 0)
kill(job_pid, sig);
// Never kill ourselves!
if (job->jv_pid != 0)
{
// TODO: have an option to only kill the process, not the group?
kill(-job->jv_pid, sig);
kill(job->jv_pid, sig);
}
return OK;
}

View File

@ -792,6 +792,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
572,
/**/
571,
/**/