[gnome-builder] foundry: add max_fd helper for runners
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] foundry: add max_fd helper for runners
- Date: Wed, 12 Jun 2019 18:17:57 +0000 (UTC)
commit f48908053d0c34285960503ffa68652bd29863c7
Author: Christian Hergert <chergert redhat com>
Date: Wed Jun 12 11:16:33 2019 -0700
foundry: add max_fd helper for runners
This is useful when we need to know what the maximum mapped FD is so that
other systems can integrate and/or workaround those mappings.
src/libide/foundry/ide-runner.c | 24 ++++++++++++++++++++++++
src/libide/foundry/ide-runner.h | 2 ++
2 files changed, 26 insertions(+)
---
diff --git a/src/libide/foundry/ide-runner.c b/src/libide/foundry/ide-runner.c
index 069463c5a..5bbc621a8 100644
--- a/src/libide/foundry/ide-runner.c
+++ b/src/libide/foundry/ide-runner.c
@@ -295,6 +295,8 @@ ide_runner_real_run_async (IdeRunner *self,
{
FdMapping *map = &g_array_index (ar, FdMapping, i);
+ g_printerr ("DO_MAP[%d] <= %d\n", map->dest_fd, map->source_fd);
+
ide_subprocess_launcher_take_fd (launcher, map->source_fd, map->dest_fd);
}
}
@@ -1504,3 +1506,25 @@ ide_runner_take_tty_fd (IdeRunner *self,
close (priv->child_fd);
priv->child_fd = tty_fd;
}
+
+gint
+ide_runner_get_max_fd (IdeRunner *self)
+{
+ IdeRunnerPrivate *priv = ide_runner_get_instance_private (self);
+ gint max_fd = 2;
+
+ g_return_val_if_fail (IDE_IS_RUNNER (self), 2);
+
+ if (priv->fd_mapping != NULL)
+ {
+ for (guint i = 0; i < priv->fd_mapping->len; i++)
+ {
+ const FdMapping *map = &g_array_index (priv->fd_mapping, FdMapping, i);
+
+ if (map->dest_fd > max_fd)
+ max_fd = map->dest_fd;
+ }
+ }
+
+ return max_fd;
+}
diff --git a/src/libide/foundry/ide-runner.h b/src/libide/foundry/ide-runner.h
index f933a04d3..6c0c2f0d0 100644
--- a/src/libide/foundry/ide-runner.h
+++ b/src/libide/foundry/ide-runner.h
@@ -145,5 +145,7 @@ IdeBuildTarget *ide_runner_get_build_target (IdeRunner *self);
IDE_AVAILABLE_IN_3_32
void ide_runner_set_build_target (IdeRunner *self,
IdeBuildTarget *build_target);
+IDE_AVAILABLE_IN_3_34
+gint ide_runner_get_max_fd (IdeRunner *self);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]