Skip to content
Snippets Groups Projects
  1. Nov 30, 2009
    • Brad King's avatar
      KWSys: Restore SIGSTOP/SIGKILL to end process tree · 2988287a
      Brad King authored
      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.
      2988287a
  2. Oct 19, 2009
  3. Sep 28, 2009
    • Brad King's avatar
      Convert KWSys to OSI-approved BSD License · 62db264e
      Brad King authored
      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.
      62db264e
  4. Jul 13, 2009
    • Brad King's avatar
      ENH: Provide unix-sytle command line parsing · e4e7f37c
      Brad King authored
      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.
      e4e7f37c
  5. Jun 12, 2009
  6. Jun 10, 2009
    • Brad King's avatar
      ENH: Teach KWSys Process basic VMS support · 48d72f12
      Brad King authored
      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.
      48d72f12
    • Brad King's avatar
      BUG: Fix non-select process impl without timeout · 6eac6c06
      Brad King authored
      This avoids use of an uninitialized value in the KWSys ProcessUNIX
      polling implementation when no timeout is given.
      6eac6c06
  7. Apr 23, 2009
  8. Mar 16, 2009
  9. Dec 15, 2008
  10. Sep 22, 2008
  11. Sep 15, 2008
  12. Aug 20, 2008
    • Brad King's avatar
      BUG: Handle case when select() lies · 83f5fa50
      Brad King authored
      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.
      83f5fa50
  13. May 13, 2008
  14. May 12, 2008
  15. Apr 02, 2008
  16. Jan 10, 2008
  17. Jun 27, 2007
  18. May 16, 2007
  19. May 03, 2007
  20. Dec 05, 2006
  21. Dec 04, 2006
  22. Oct 04, 2006
  23. Oct 03, 2006
  24. Aug 01, 2006
  25. Jun 15, 2006
  26. May 24, 2006
  27. May 23, 2006
  28. May 22, 2006
  29. May 21, 2006
  30. May 20, 2006
  31. Mar 08, 2006
Loading