From ff7bc0ac6cde35edbd1616b3dd9431de7f1a2669 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Wed, 13 Jun 2018 15:36:00 +0200 Subject: [PATCH] nic_router: optimize handling of invalid domains Dissolve and destroy the invalid domain first before deinitializing all domains for the next round. This way, the deinitialization is not done twice for the invalid domain. Issue #2840 --- repos/os/src/server/nic_router/configuration.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/repos/os/src/server/nic_router/configuration.cc b/repos/os/src/server/nic_router/configuration.cc index f998ec7af..0f1bced60 100644 --- a/repos/os/src/server/nic_router/configuration.cc +++ b/repos/os/src/server/nic_router/configuration.cc @@ -96,16 +96,16 @@ Configuration::Configuration(Env &env, } catch (Retry_without_domain exception) { - /* deinitialize all domains again */ + /* destroy domain that became invalid during initialization */ + _domains.remove(exception.domain); + destroy(_alloc, &exception.domain); + + /* deinitialize the remaining domains again */ _domains.for_each([&] (Domain &domain) { domain.deinit(); if (_verbose) { log("[", domain, "] deinitiated domain"); } }); - /* destroy domain that became invalid during initialization */ - _domains.remove(exception.domain); - destroy(_alloc, &exception.domain); - /* retry to initialize the remaining domains */ continue; }