Skip to content
Snippets Groups Projects
  1. Aug 28, 2015
  2. Aug 24, 2015
  3. Aug 21, 2015
    • 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
      c8e5d1b2
  4. Aug 07, 2015
  5. Aug 03, 2015
  6. Jul 30, 2015
    • James Johnston's avatar
      Process: Fix error message for startup failure on Windows · f63febb7
      James Johnston authored and Brad King's avatar Brad King committed
      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
      f63febb7
  7. Jul 23, 2015
    • 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
      83b4a6b8
  8. Jul 22, 2015
    • James Johnston's avatar
      Process: Fix leaked file descriptor in ProcessUNIX · 52874e6a
      James Johnston authored and Brad King's avatar Brad King committed
      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
      52874e6a
  9. Jul 15, 2015
    • James Johnston's avatar
      Process: Added test cases for testing Ctrl+C and process groups. · 906c2cae
      James Johnston authored and Brad King's avatar Brad King committed
      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
      906c2cae
    • James Johnston's avatar
      Process: Added initial support for process groups. · ef517b19
      James Johnston authored and Brad King's avatar Brad King committed
      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
      ef517b19
    • James Johnston's avatar
      Process: Wait for children to terminate on Ctrl+C. · faff2ab0
      James Johnston authored and Brad King's avatar Brad King committed
      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
      faff2ab0
    • James Johnston's avatar
      Process: Refactor sleeping code in testProcess.c. · b1c44c58
      James Johnston authored and Brad King's avatar Brad King committed
      Code for delaying/sleeping has been unified into one location.
      
      Change-Id: I234f3e1be667539e8126f7ed24aec95fe14284b3
      b1c44c58
    • James Johnston's avatar
      Process: Remove trailing whitespace in ProcessUNIX.c · 4cd8846c
      James Johnston authored and Brad King's avatar Brad King committed
      Change-Id: I821de08dd10b5f1f4af6287a5d7dc6e03e2c1e78
      4cd8846c
  10. Jul 10, 2015
    • 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
      c9336bcf
    • 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
      86a24794
  11. Jul 08, 2015
    • 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
      KWSys.
      
      Change-Id: I422c76f6515d51a352e112828533d6e3fd1a5440
      d3ba91e1
  12. Jul 07, 2015
  13. Jul 02, 2015
  14. Jun 15, 2015
  15. Jun 03, 2015
  16. May 27, 2015
    • 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
      61e0419f
  17. May 18, 2015
    • 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
      9a6b7c3f
  18. May 12, 2015
  19. May 05, 2015
    • 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
      34fceb50
    • 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
      8c8b2273
  20. May 04, 2015
  21. Apr 19, 2015
    • Brad King's avatar
      Glob: Add explicit assignment operator to Message member · 4f39791b
      Brad King authored
       Glob.hxx:58:5: warning: definition of implicit copy assignment operator
        for 'Message' is deprecated because it has a user-declared copy
        constructor [-Wdeprecated]
           Message(const Message& msg) :
           ^
      
      Change-Id: Id6d28d9e5b4ed556556a5add10881f1bcd4525b7
      4f39791b
  22. Apr 16, 2015
    • Brad King's avatar
      Tell Git to export '.gitattributes' · 1ea01a46
      Brad King authored
      Since we do not package the KWSys source tree directly and always
      merge snapshots of its content into other project subtrees, we
      should carry the .gitattributes file into the other projects to
      that the attributes apply in their source trees too.
      
      Change-Id: I039b151443486d24ff798fa0c677b62620cec0b7
      1ea01a46
  23. Apr 10, 2015
Loading