From b7938023332ef19bdb87bb0d358c1d34fc106961 Mon Sep 17 00:00:00 2001 From: Johannes Schlatow Date: Thu, 23 May 2024 12:36:26 +0200 Subject: [PATCH] sculpt: fix presence of unconfigured children A launched child only becomes present in the runtime when it has been configured. This must be considered when checking for missing servers. Fixes genodelabs/genode#5226 --- repos/gems/src/app/depot_deploy/children.h | 9 +++++++++ repos/gems/src/app/sculpt_manager/deploy.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/repos/gems/src/app/depot_deploy/children.h b/repos/gems/src/app/depot_deploy/children.h index af77561818..763fd5ab35 100644 --- a/repos/gems/src/app/depot_deploy/children.h +++ b/repos/gems/src/app/depot_deploy/children.h @@ -194,6 +194,15 @@ class Depot_deploy::Children result = true; }); return result; } + + bool blueprint_needed(Child::Name const &name) const + { + bool result = false; + _children.for_each([&] (Child const &child) { + if (child.name() == name && child.blueprint_needed()) + result = true; }); + return result; + } }; #endif /* _CHILDREN_H_ */ diff --git a/repos/gems/src/app/sculpt_manager/deploy.h b/repos/gems/src/app/sculpt_manager/deploy.h index eefe4261ac..e64c354766 100644 --- a/repos/gems/src/app/sculpt_manager/deploy.h +++ b/repos/gems/src/app/sculpt_manager/deploy.h @@ -234,7 +234,7 @@ struct Sculpt::Deploy if (name == "default_fs_rw") return; - if (!_runtime_info.present_in_runtime(name)) + if (!_runtime_info.present_in_runtime(name) || _children.blueprint_needed(name)) fn(name); }); });