From e9fcd7f1daaa5d734d8e00fb5c51f0ebbc1b915f Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 23 Mar 2018 12:25:30 -0700 Subject: [PATCH] construct: Fix console runlevel entry conditions. --- construct/console.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/construct/console.cc b/construct/console.cc index d3b8f2f1a..a88a5dd00 100644 --- a/construct/console.cc +++ b/construct/console.cc @@ -52,7 +52,7 @@ console_spawn() { "console", stack_sz, - std::bind(&console), + console, ircd::context::DETACH | ircd::context::POST }; } @@ -99,7 +99,13 @@ void console() try { - if(ircd::runlevel != ircd::runlevel::RUN) + ircd::runlevel_changed::dock.wait([] + { + return ircd::runlevel == ircd::runlevel::RUN || + ircd::runlevel == ircd::runlevel::HALT; + }); + + if(ircd::runlevel == ircd::runlevel::HALT) return; const unwind atexit([] @@ -191,7 +197,13 @@ void execute(const std::vector lines) try { - if(ircd::runlevel != ircd::runlevel::RUN) + ircd::runlevel_changed::dock.wait([] + { + return ircd::runlevel == ircd::runlevel::RUN || + ircd::runlevel == ircd::runlevel::HALT; + }); + + if(ircd::runlevel == ircd::runlevel::HALT) return; const unwind atexit([]