summaryrefslogtreecommitdiff
path: root/src/vtespawn.hh
diff options
context:
space:
mode:
authorChristian Persch <chpe@gnome.org>2017-02-03 21:16:16 +0100
committerChristian Persch <chpe@gnome.org>2017-02-03 21:24:01 +0100
commit048195077cee8f315d58fb4b059422cecd317f4a (patch)
tree828b15f2d5209ba1df30858ff7245f252e8182f5 /src/vtespawn.hh
parent1226f58cd97aa06f0ce58791153ca1f58e89658a (diff)
downloadvte-048195077cee8f315d58fb4b059422cecd317f4a.tar.gz
pty: spawn: Work around g_spawn_async non-cancellability
Until glib gets a fully cancelleable spawning API (either for g_spawn_* or GSubprocess), just use a trimmed-down copy of gspawn.c with cancellation added in. https://bugzilla.gnome.org/show_bug.cgi?id=772354
Diffstat (limited to 'src/vtespawn.hh')
-rw-r--r--src/vtespawn.hh48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/vtespawn.hh b/src/vtespawn.hh
new file mode 100644
index 00000000..6b75e3ed
--- /dev/null
+++ b/src/vtespawn.hh
@@ -0,0 +1,48 @@
+/* gspawn.h - Process launching
+ *
+ * Copyright 2000 Red Hat, Inc.
+ *
+ * GLib is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * GLib is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GLib; see the file COPYING.LIB. If not, write
+ * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#pragma once
+
+#include <glib.h>
+
+gboolean vte_spawn_async_cancellable (const gchar *working_directory,
+ gchar **argv,
+ gchar **envp,
+ GSpawnFlags flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer user_data,
+ GPid *child_pid,
+ gint timeout,
+ GPollFD *pollfd,
+ GError **error);
+
+gboolean vte_spawn_async_with_pipes_cancellable (const gchar *working_directory,
+ gchar **argv,
+ gchar **envp,
+ GSpawnFlags flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer user_data,
+ GPid *child_pid,
+ gint *standard_input,
+ gint *standard_output,
+ gint *standard_error,
+ gint timeout,
+ GPollFD *pollfd,
+ GError **error);