Commit Graph

84 Commits

Author SHA1 Message Date
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