1. 28 Aug, 2015 6 commits
  2. 24 Aug, 2015 6 commits
  3. 21 Aug, 2015 1 commit
    • Brad King's avatar
      Pass C++ standard flags to SunPro in standalone build · c8e5d1b2
      Brad King authored
      Pass flags to the SunPro compiler to improve the level of C++ standard
      support beyond the default.  Do this only in a standalone build so that
      host projects can set flags for us.
      Change-Id: Ic9a84debfa939caf00b7ad99887793e885c35371
  4. 07 Aug, 2015 1 commit
  5. 03 Aug, 2015 5 commits
  6. 30 Jul, 2015 1 commit
    • James Johnston's avatar
      Process: Fix error message for startup failure on Windows · f63febb7
      James Johnston authored
      Since commit faff2ab0 (Process: Wait for children to terminate on Ctrl+C,
      2015-06-30) we do not report the GetLastError() from CreateProcessW()
      failure.  Refactor kwsysProcessCleanup to pass the error code in so
      that we can always call GetLastError() immediately after a failure.
      Change-Id: I2b7950560c8bde2e29070c87f4927c51dca32e39
  7. 23 Jul, 2015 1 commit
    • Brad King's avatar
      Process: Fix conversion warning in testProcess.c · 83b4a6b8
      Brad King authored
      Store and pass the interruptDelay parameter as 'unsigned int' so
      it does not have to be converted to pass to testProcess_sleep.
      Otherwise some compilers warn about the signed->unsigned conversion.
      Change-Id: I1edf6dbc852231834a5de82c5b14f84ac8018c1f
  8. 22 Jul, 2015 1 commit
    • James Johnston's avatar
      Process: Fix leaked file descriptor in ProcessUNIX · 52874e6a
      James Johnston authored
      kwsysProcess leaked a file descriptor every time a process would start.
      This was causing exhaustion of available file descriptors on some
      operating systems (e.g. Mac OS X).
      Change-Id: I78eed0755f9766065c36460ffab468b2d7d1df12
  9. 15 Jul, 2015 5 commits
    • James Johnston's avatar
      Process: Added test cases for testing Ctrl+C and process groups. · 906c2cae
      James Johnston authored
      Two new tests were added to testProcess:
       * Test 9 is constructed of the root test process, a child process,
         and a grandchild process.  The grandchild ignores all Ctrl+C signals
         and then sleeps.  The child runs the grandchild normally.  The root
         process runs the child in a new process group, sends it a Ctrl+C
         signal, and then lets the process expire to prove that the child was
         blocked waiting for the uninterruptable grandchild to die.
       * Test 10 is constructed of the root test process, a child process,
         and a grandchild process.  The grandchild sleeps and processes
         signals normally.  The child runs the grandchild in a new process
         group.  The root process runs the child in a new process group as
         well, sends it a Ctrl+C, and then verifies that: (1) the child does
         indeed terminate with an interrupt signal, (2) the child did not
         expire, proving that it retransmitted the signal to the sleeping
         grandchild before waiting for the grandchild to terminate.
      Change-Id: Iba5bee546a82eb61a41d4194341e9382a00279d4
    • James Johnston's avatar
      Process: Added initial support for process groups. · ef517b19
      James Johnston authored
      kwsysProcess_SetOption now allows you to specify a new
      kwsysProcess_Option_CreateProcessGroup option, which creates the
      process in a new process group (Windows/UNIX) and a new session
      (UNIX).  Child process groups receive signals separately from their
      parents.  This allowed for the introduction of the new
      kwsysProcess_Interrupt function, which allows one to safely request
      the child process in its own group to terminate.  The Ctrl+C handler
      also manually sends that signal to child process groups, since it's
      no longer automatic.
      Change-Id: Id0a420ad65f1b1c1d299ac0eb95fbb8b50a52409
    • James Johnston's avatar
      Process: Wait for children to terminate on Ctrl+C. · faff2ab0
      James Johnston authored
      The following applies to any KWSys console app on Windows or UNIX
      (e.g. cmake.exe):  The default behavior of such an app when Ctrl+C is
      pressed is to call ExitProcess or _exit.  If the user has a
      subprocess open (e.g. by way of cmake --build) when this happens, the
      subprocess will be orphaned because the kwsys-based program will
      immediately exit.  This can lead to odd behavior such as the orphaned
      subprocess continuing to run and mix output with the operating system
      shell.  We prevent this behavior on Windows by tracking all
      subprocesses and waiting for their termination when Ctrl+C is pressed
      before allowing the call to ExitProcess to proceed.  On UNIX, we reap
      every single child process and then call _exit.
      Change-Id: Iebd2eedb1c06719e9797dd5b1309d473145476a8
    • James Johnston's avatar
      Process: Refactor sleeping code in testProcess.c. · b1c44c58
      James Johnston authored
      Code for delaying/sleeping has been unified into one location.
      Change-Id: I234f3e1be667539e8126f7ed24aec95fe14284b3
    • James Johnston's avatar
      Process: Remove trailing whitespace in ProcessUNIX.c · 4cd8846c
      James Johnston authored
      Change-Id: I821de08dd10b5f1f4af6287a5d7dc6e03e2c1e78
  10. 10 Jul, 2015 2 commits
    • Brad King's avatar
      SystemTools: Optimize GetActualCaseForPath memoization · c9336bcf
      Brad King authored
      Use a case-insensitive map key since paths of all case combinations
      should map to the same actual case.  This may reduce the number
      of copies of each path differing only by case in the map.
      Change-Id: Ic5460fcf14fa263d45ef1909bf80a81c6f4791a4
    • Brad King's avatar
      SystemTools: Fix GetActualCaseForPath drive letter case handling · 86a24794
      Brad King authored
      Convert the drive letter to upper case in the actual output value
      instead of just our internal memoization map key.  This was broken by
      commit 08b2dcff (Fix GetActualCaseForPath for UNC paths, 2010-08-16).
      CMake-Issue: 15642
      Change-Id: Iee7148616370d1be4be052c74b7a5d802ad47d93
  11. 08 Jul, 2015 1 commit
    • Brad King's avatar
      System: Drop Shell_* APIs · d3ba91e1
      Brad King authored
      The shell escaping APIs are very specific to CMake and are not used by
      other KWSys clients.  They are moving to CMake proper, so drop them from
      Change-Id: I422c76f6515d51a352e112828533d6e3fd1a5440
  12. 07 Jul, 2015 1 commit
  13. 02 Jul, 2015 1 commit
  14. 15 Jun, 2015 1 commit
  15. 03 Jun, 2015 1 commit
  16. 27 May, 2015 1 commit
    • Brad King's avatar
      SystemTools: Teach RemoveFile to tolerate missing file · 61e0419f
      Brad King authored
      Some use cases may have a race condition such that the file to be
      removed disappears before we remove it.  Detect when removal fails due
      to the file already missing and tolerate it without failing.
      On Windows this requires using DeleteFileW instead of _wunlink because
      the latter does not seem to always update errno.  Try to delete before
      checking permissions because getting permissions will fail if the file
      is missing.
      Change-Id: If1922a15d742daca6d252c594284800d60cc1fce
  17. 18 May, 2015 1 commit
    • Matt McCormick's avatar
      cmake: Set CMP0056 to NEW · 9a6b7c3f
      Matt McCormick authored
      When Android is compiled with "-static" in CMAKE_EXE_LINKER_FLAGS, only the
      shared version of libc has utimensat.  By setting CMP0056 to NEW,
      CMAKE_EXE_LINKER_FLAGS is passed to the try_compile in KWSYS_PLATFORM_CXX_TEST
      so KWSYS_CXX_HAS_UTIMENSAT gets the correct result.
      Change-Id: Ia5ff7abaafb92e043927b57c5f2858259195235f
  18. 12 May, 2015 1 commit
  19. 05 May, 2015 2 commits
    • Brad King's avatar
      Process: Add option to merge stdout/stderr · 34fceb50
      Brad King authored
      When enabled, ignore all stderr pipe configuration options and
      just give the child a copy of stdout as its stderr.
      Change-Id: I87a64657cc701b706da78f7bfc56ad0071383372
    • Brad King's avatar
      Process: Refactor child pipe creation · 8c8b2273
      Brad King authored
      Consolidate logic to prepare stdin/stdout/stderr in the same way
      before starting any processes.  This will simplify alternative
      approaches to select the child pipes.
      Change-Id: I36175a8cfc2578543103297420908a539ad71a3a
  20. 04 May, 2015 1 commit