aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/spawn.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-06 18:48:49 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-08 18:41:47 +0200
commit0267b68570cc53d8c23e1454d2e8aa375ed50a51 (patch)
tree2088566d6836119f12e84a590f97383202523af6 /src/spawn.c
parent12932ca20847e09be31fbce3bf029389a47b84cd (diff)
downloadsciteco-0267b68570cc53d8c23e1454d2e8aa375ed50a51.tar.gz
try G_SPAWN_LEAVE_DESCRIPTORS_OPEN when spawning processes: promises an "optimized" code-path on UNIX
Diffstat (limited to 'src/spawn.c')
-rw-r--r--src/spawn.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/spawn.c b/src/spawn.c
index be2489b..2d75bd6 100644
--- a/src/spawn.c
+++ b/src/spawn.c
@@ -195,8 +195,13 @@ teco_state_execute_initial(teco_machine_main_t *ctx, GError **error)
static teco_state_t *
teco_state_execute_done(teco_machine_main_t *ctx, const teco_string_t *str, GError **error)
{
+ /*
+ * NOTE: With G_SPAWN_LEAVE_DESCRIPTORS_OPEN and without G_SPAWN_SEARCH_PATH_FROM_ENVP,
+ * Glib offers an "optimized codepath" on UNIX.
+ * G_SPAWN_SEARCH_PATH_FROM_ENVP does not appear to work on Windows, anyway.
+ */
static const GSpawnFlags flags = G_SPAWN_DO_NOT_REAP_CHILD |
- G_SPAWN_SEARCH_PATH |
+ G_SPAWN_SEARCH_PATH | G_SPAWN_LEAVE_DESCRIPTORS_OPEN |
G_SPAWN_STDERR_TO_DEV_NULL;
if (ctx->mode > TECO_MODE_NORMAL)