Mercurial > vim
comparison src/os_win32.c @ 10386:d3f0946b4a80 v8.0.0087
commit https://github.com/vim/vim/commit/7df915d113ac1981792c50e8b000c9f5f784b78b
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Nov 17 17:25:32 2016 +0100
patch 8.0.0087
Problem: When the channel callback gets job info the job may already have
been deleted. (lifepillar)
Solution: Do not delete the job when the channel is still useful. (ichizok,
closes #1242, closes #1245)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 17 Nov 2016 17:30:04 +0100 |
parents | 25cc0021a8d7 |
children | 17165aabc731 |
comparison
equal
deleted
inserted
replaced
10385:368468ef35cf | 10386:d3f0946b4a80 |
---|---|
4976 | 4976 |
4977 if (!GetExitCodeProcess(job->jv_proc_info.hProcess, &dwExitCode) | 4977 if (!GetExitCodeProcess(job->jv_proc_info.hProcess, &dwExitCode) |
4978 || dwExitCode != STILL_ACTIVE) | 4978 || dwExitCode != STILL_ACTIVE) |
4979 { | 4979 { |
4980 job->jv_exitval = (int)dwExitCode; | 4980 job->jv_exitval = (int)dwExitCode; |
4981 if (job->jv_status != JOB_ENDED) | 4981 if (job->jv_status < JOB_ENDED) |
4982 { | 4982 { |
4983 ch_log(job->jv_channel, "Job ended"); | 4983 ch_log(job->jv_channel, "Job ended"); |
4984 job->jv_status = JOB_ENDED; | 4984 job->jv_status = JOB_ENDED; |
4985 } | 4985 } |
4986 return "dead"; | 4986 return "dead"; |