| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* upstream-KWSys:
KWSys 2017-10-10 (239bc737)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2017-08-11 (e1006189)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2017-05-16 (fe1f22ce)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2016-11-09 (18c65411)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2016-03-09 (36d8666f)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2016-02-22 (4847aedd)
|
|
|
|
|
| |
* upstream-KWSys:
KWSys 2016-01-11 (e8bf616e)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Do not try to execute a child with no command line. Previously this led
to a silent hang.
|
| |
|
|
|
|
|
|
|
|
|
| |
kFreeBSD and Hurd have the same userland as Linux. This change is
necessary to enable kwsysProcessKill() to kill child processes on
kFreeBSD. The bug was detected by CTestTestTimeout test.
Patch from "Modestas Vainius <modestas@vainius.eu>".
See issue #10432.
|
|
|
|
| |
Patch from Chuck Atkins <chuck.atkins@kitware.com>
|
|
|
|
|
|
| |
Teach kwsysProcessKill to identify processes on this platform using the "ps"
command just as on Linux. Patch from Modestas Vainius <modax@debian.org>.
See issue #10432.
|
|
|
|
|
| |
Open output files with mode 0666 so that permissions are not more strict
than umask permits. See issue #10126.
|
|
|
|
|
|
|
|
|
| |
In order to kill process trees we need to list all processes to find
those whose parent we are killing. We implement process listing on
OpenSolaris by using "ps -ef" and parsing the resulting format:
UID PID PPID C STIME TTY TIME CMD
%*s %d %d %*[^\n]\n
|
|
|
|
|
|
|
|
|
| |
In order to kill process trees we need to list all processes to find
those whose parent we are killing. We implement process listing on QNX
using "ps -Af" and parsing the resulting format:
UID PID PPID C STIME TTY TIME CMD
%*d %d %d %*[^\n]\n
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On UNIX systems we kill a tree of processes by performing a DFS walk of
the tree. We send SIGSTOP to each process encountered, recursively
handle its children, and then send SIGKILL.
We once used the above approach in the past, but it was removed by the
commit "Do not send both SIGSTOP and SIGKILL when killing a process".
The commit was meant to work-around an OS X 10.3 bug in which the child
would not always honor SIGKILL after SIGSTOP. At the time we wrongly
assumed that the process tree remains intact after SIGKILL and before
the child is reaped. In fact the grandchildren may be re-parented to
ppid=1 even before the child is reaped, which causes the DFS walk to
miss them.
|
|
|
|
|
|
| |
variable)
Alex
|
|
|
|
|
|
|
| |
This converts the KWSys license to a pure 3-clause OSI-approved BSD
License. We drop the previous license clause requiring modified
versions to be plainly marked. We also update the KWSys copyright to
cover the full development time range.
|
|
|
|
|
|
|
| |
Add System_Parse_CommandForUnix to the KWSys System interface as a
utility to parse a unix-style command line. Move the existing
implementation out of ProcessUNIX. Add a flags argument reserved for
future use in providing additional behavior.
|
|
|
|
|
| |
This helps avoid fixing VMS-specific code for non-VMS compilers where it
isn't needed anyway.
|
|
|
|
| |
kwsysProcessSetVMSFeature discards qualifiers from pointer target type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This achieves basic process execution on OpenVMS. We use work-arounds
for different fork()/exec() behavior and a lack of select().
VMS emulates fork/exec using setjmp/longjmp to evaluate the child and
parent return cases from fork. Therefore both must be invoked from the
same function.
Since select() works only for sockets we use the BeOS-style polling
implementation. However, non-blocking reads on empty pipes cannot be
distinguished easily from the last read on a closed pipe. Therefore we
identify end of data by an empty read after the child terminates.
|
|
|
|
|
| |
This avoids use of an uninitialized value in the KWSys ProcessUNIX
polling implementation when no timeout is given.
|
|
|
|
| |
bootstrap script will not work on VMS
|
| |
|
|
|
|
| |
read'), declared with attribute warn_unused_result
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
According to "man select" on Linux it is possible that select() lies
about data being ready on a pipe in some subtle cases. We deal with
this by switching to non-blocking i/o and checking for EAGAIN. See
issue #7180.
|
|
|
|
| |
since isspace only deal with >=0 value (except EOF) one has to first cast it to unsigned char
|
| |
|
| |
|
|
|
|
| |
read end cannot be closed if the pipe write end is open, the pipe is full, and another process is blocking waiting to write. Work around the problem by killing the children before closing the pipes.
|
| |
|
|
|
|
| |
SIGSTOP seems to be able to block the SIGKILL occasionally. Also the SIGKILL is sufficient since the process table entry will still exist until it is reaped with waitpid.
|