1. 26 Dec, 2013 1 commit
  2. 16 Dec, 2013 1 commit
  3. 28 Nov, 2013 1 commit
    • Matthias Clasen's avatar
      Fix g_subprocess_launcher_spawn · 7ef1eccd
      Matthias Clasen authored
      This function turns a varargs argument list into a string array,
      but forgets to NULL-terminate it. This function was not covered
      by unit tests...so it was broken.
  4. 21 Oct, 2013 1 commit
    • Allison Karlitskaya's avatar
      GSubprocess win32 fixups · 358588ed
      Allison Karlitskaya authored
      Note: we go out of our way not to pass a child setup function on win32
      (even if it does nothing) because we get a g_warning() from gspawn if we
      do so.
  5. 18 Oct, 2013 1 commit
    • Matthias Clasen's avatar
      Fix up subprocess docs · c8483239
      Matthias Clasen authored
      The GSubprocessLauncher docs had their own long description,
      but were not properly set up as their own section.
  6. 17 Oct, 2013 3 commits
    • Allison Karlitskaya's avatar
      Fixup GSubprocess documentation bits · 542ad4db
      Allison Karlitskaya authored
    • Colin Walters's avatar
      gsubprocess: Fix up communicate · 0e1a3ee3
      Colin Walters authored
      We weren't closing the streams after we were done reading or writing,
      which is kind of essential.  The easy way to fix this is to just use
      g_output_stream_splice() to a GMemoryOutputStream rather than
      hand-rolling it.  This results in a substantial reduction of code
      A second serious issue is that we were marking the task as complete when
      the process exits, but that's racy - there could still be data to read
      from stdout.  Fix this by just refcounting outstanding operations.
      This code, not surprisingly, looks a lot like the "multi" test.
      Next, because processes output binary data, I'd be forced to annotate
      the char*/length pairs as (array) (element-type uint8).  But rather than
      doing that, it's *far* simpler to just use GBytes.
      We need a version of this that actually validates as UTF-8, that will be
      in the next patch.
    • Colin Walters's avatar
      GSubprocess: New class for spawning child processes · 5b48dc40
      Colin Walters authored
      There are a number of nice things this class brings:
      0) Has a race-free termination API on all platforms (on UNIX, calls to
         kill() and waitpid() are coordinated as not to cause problems).
      1) Operates in terms of G{Input,Output}Stream, not file descriptors
      2) Standard GIO-style async API for wait() with cancellation
      3) Makes some simple cases easy, like synchronously spawning a
         process with an argument list
      4) Makes hard cases possible, like asynchronously running a process
         with stdout/stderr merged, output directly to a file path
      Much rewriting and code review from Ryan Lortie <desrt@desrt.ca>