1. 26 Oct, 2017 1 commit
  2. 11 Sep, 2017 2 commits
    • Mikhail Zabaluev's avatar
      Skip g_subprocess_launcher_set_child_setup() in introspection · e5db8ec7
      Mikhail Zabaluev authored
      It's not likely that the runtime of a bound language using the
      introspection supports running in a process forked by a foreign
      library, so that a closure programmed in that language would work
      Any programming environment supporting that would probably have
      its own advanced facilities for process spawning, or be able
      to access the GLib spawning APIs via raw C bindings (still
      represented in the introspection, (skip) only adds a flag)
      and do any low-level preparatory dances as necessary for the
      forked runtime.
      Note that there are other APIs making use of GSpawnChildSetupFunc,
      but they are usable with the closure nullified, and we cannot annotate
      the closure parameters away because that would break the annotated API
      for bindings; accordingly to bug #738176 comment #3, the current bindings'
      users are expected to pass null.
    • Alberto Ruiz's avatar
  3. 31 May, 2017 1 commit
  4. 29 May, 2017 1 commit
  5. 10 Apr, 2017 1 commit
  6. 13 Feb, 2017 1 commit
  7. 03 Jan, 2017 1 commit
    • Christian Hergert's avatar
      subprocess: avoid infinite loop in verify_disposition() · 83d6c38e
      Christian Hergert authored
      When performing the verify and building the error string there were two
      possibilities of an infinite loop. The first is the missing twos-complement
      to unset the bit in the filtered flags. The second is the lack of handling
      G_SUBPROCESS_FLAGS_NONE which can return a valid GFlagsValue (and cannot
      unset the bit since the value is zero).
      This walks all known values in the GSubprocessFlags type class and check
      if they are set. This has the benefit that we don't call needless functions
      which walk the same table as well as avoiding mutating values to build
      the error string.
  8. 12 Sep, 2016 1 commit
  9. 07 Jun, 2016 1 commit
  10. 04 Jun, 2016 1 commit
  11. 05 Jun, 2015 1 commit
  12. 29 Jun, 2014 1 commit
  13. 20 May, 2014 1 commit
  14. 04 Mar, 2014 1 commit
  15. 08 Jan, 2014 1 commit
  16. 26 Dec, 2013 1 commit
  17. 16 Dec, 2013 1 commit
  18. 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.
  19. 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.
  20. 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.
  21. 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>