Brad King
312ca9670f
ENH: Teach KWSys Process basic VMS support
...
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.
2009-06-10 11:48:34 -04:00
Brad King
1eec4fe6ad
BUG: Fix non-select process impl without timeout
...
This avoids use of an uninitialized value in the KWSys ProcessUNIX
polling implementation when no timeout is given.
2009-06-10 11:46:21 -04:00
Bill Hoffman
7fc99c94d4
ENH: check in almost building VMS stuff with VMSBuild directory since the bootstrap script will not work on VMS
2009-04-23 11:09:47 -04:00
Francois Bertel
257937f2bd
COMP:Try to fix compile error with qnx gcc.
2009-03-16 17:38:17 -04:00
Francois Bertel
d0b32b42a1
COMP:Fixed gcc 4.3.2 warning with -O1 and above: ignoring return value of read'), declared with attribute warn_unused_result
2009-03-16 17:13:14 -04:00
Francois Bertel
7b9b56d80e
COMP:Fixed warnings.
2009-03-16 15:02:25 -04:00
Francois Bertel
ef36d72c89
COMP:Fixed warnings.
2008-12-15 17:19:26 -05:00
Bill Hoffman
67dc176ffa
ENH: a few more haiku fixes, stop the debugger from coming up for tests
2008-09-22 14:05:13 -04:00
Bill Hoffman
64fc597de2
ENH: add initial support for HAIKU OS from bug# 7425
2008-09-15 17:53:28 -04:00
Brad King
07665de038
BUG: Handle case when select() lies
...
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 .
2008-08-20 09:57:09 -04:00
Mathieu Malaterre
7499bb250d
ENH: all ctype function have the same issue: char can be signed or unsigned, since isspace only deal with >=0 value (except EOF) one has to first cast it to unsigned char
2008-05-13 05:18:51 -04:00
Bill Lorensen
614b1ab358
COMP: warning, isprint and isspace take int args.
2008-05-12 12:01:09 -04:00
Mathieu Malaterre
f410daffec
STYLE: minor comments
2008-04-02 08:36:51 -04:00
Brad King
1c2ffbb5bc
BUG: Fix hang in Process_Kill on OS X caused by an OS bug in which a pipe 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.
2008-01-10 18:32:38 -05:00
Brad King
9dec9a0c3b
COMP: Fix for platforms that do not have siginfo on their signal handlers.
2007-06-27 11:39:16 -04:00
Brad King
01c7db07c3
BUG: Do not send both SIGSTOP and SIGKILL when killing a process. The 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.
2007-05-16 13:10:45 -04:00
Brad King
aa4d7847ee
COMP: Fix code-not-reached warnings for SunCC.
2007-05-03 13:03:13 -04:00
Bill Hoffman
6b7bf34341
COMP: remove warning
2006-12-05 09:02:32 -05:00
Bill Hoffman
1513773310
ENH: fix build error on IRIX
2006-12-05 08:39:22 -05:00
Brad King
de8ffcaef4
ENH: Changes based on patch from Ryan C. Gordon to enable process execution on BeOS. There seems to be no way to implement it without polling (or threads).
2006-12-04 14:42:47 -05:00
Brad King
40adb2ce03
ENH: Adding tests KWSYS_C_HAS_PTRDIFF_T and KWSYS_C_HAS_SSIZE_T to help ProcessUNIX.c build everywhere without warnings.
2006-10-04 17:27:17 -04:00
Brad King
48ee381e6b
BUG: Need to initialize to not use native pipes.
2006-10-03 10:26:32 -04:00
Brad King
6eef6638a5
ENH: Added Process_SetPipeNative method to allow user code to override the pipes connected to the child pipeline.
2006-10-03 09:10:03 -04:00
Brad King
9b2b2b5f1b
COMP: Use SA_RESTART only if it is defined for the current platform. This partially addresses bug#3556.
2006-08-01 14:28:03 -04:00
Brad King
6438bec4c9
ENH: Added Option_Verbatim to run whole command lines directly.
2006-06-15 14:40:42 -04:00
Brad King
9b74e597be
BUG: Do not leak global table of processes.
2006-05-24 10:13:18 -04:00
Brad King
35334d01cd
ENH: Re-enabling SIGCHLD handling implementation with a fix for Cygwin.
2006-05-23 11:48:15 -04:00
Brad King
29b75dda97
BUG: Reverting previous change until it can be fixed on Cygwin.
2006-05-22 15:11:42 -04:00
Brad King
0d594a4538
ENH: Implemented handling of SIGCHLD to detect the termination of immediate children. This allows grandchildren to remain running after the children exit.
2006-05-21 10:26:28 -04:00
Brad King
3dd70af5a0
ENH: Enabling process tree killing on Cygwin.
2006-05-20 18:50:27 -04:00
Brad King
bde71e9668
ENH: Enabled process tree killing on AIX.
2006-03-08 13:06:46 -05:00
Brad King
6fb7bac013
ENH: Enabled process tree killing on the SGI.
2006-03-08 12:42:59 -05:00
Brad King
95f86d5d6f
ENH: Enabled process tree killing for FreeBSD and Sun.
2006-03-08 12:36:14 -05:00
Brad King
17d79233ff
ENH: Enabled process tree killing on HP-UX.
2006-03-08 12:12:37 -05:00
Brad King
c31c18bb9c
BUG: Do not leak ps FILE when the process starts but reading the header fails.
2006-03-08 11:57:41 -05:00
Brad King
3c39accee9
ENH: Added implementation of process tree killing that runs "ps" to traverse the tree.
2006-03-08 11:38:51 -05:00
Brad King
8489a94101
BUG: When more than one command is given and one of them fails to start and the rest are killed, do not forget to reap the killed children.
2005-12-31 12:59:31 -05:00
Brad King
e3876623f6
STYLE: Documented reference to "man select_tut".
2005-11-16 11:39:43 -05:00
Brad King
9fd4560ba2
BUG: Fixed polling capability of WaitForData.
2005-06-17 13:57:27 -04:00
Brad King
26f82b064c
ENH: Removing previous debug code.
2005-05-16 13:42:23 -04:00
Brad King
b45071cc60
ENH: Adding debugging code for freebsd.
2005-05-13 14:44:20 -04:00
Brad King
a4aefb4faa
BUG: struct timeval uses unsigned types on at least one platform (QNX). Alot of the time logic assumes a signed type. Switch to using a signed representation that is converted to the native representation only for system calls.
2005-05-10 16:36:49 -04:00
Brad King
3336b74c01
COMP: Added initializer to avoid warning. It is not really needed, though.
2005-05-05 09:05:15 -04:00
Brad King
8567e7d0bc
BUG: Do not close stdout/stderr pipes in parent if they are shared.
2005-04-21 16:05:09 -04:00
Brad King
c98bd6249a
BUG: When killing a child all the pipe read ends should be closed. This will allow a child that is blocking while waiting to write to the pipe to wake up and receive the kill signal properly on cygwin.
2005-04-19 11:52:25 -04:00
Brad King
caf54b2093
COMP: Adding work-around for CMake dependency scanning limitation. Any configured header included by KWSYS_HEADER() in a .c or .cxx file in kwsys itself must use this hack to get dependencies.
2005-04-13 16:46:09 -04:00
Andy Cedilnik
4a390c174c
ENH: Do kwsys testing as part of cmake testing, command line arguments are not experimental and add simple test for systemtools
2005-04-13 13:57:24 -04:00
Andy Cedilnik
588653c4e8
COMP: Remove warnings about shadow variables
2005-02-27 17:36:00 -05:00
Brad King
5701282e98
ERR: Fixed missing return warning. Code was not reachable anyway.
2004-07-09 11:49:04 -04:00
Brad King
55c1c3b33f
BUG: Do not disown if process has already been killed or the timeout expired. Also need to call kwsysProcessCleanup to disown.
2004-07-07 17:46:34 -04:00