From d174ee7bc7f9bd7ed195b58f83888e0a7a744c2e Mon Sep 17 00:00:00 2001 From: Akulij Date: Wed, 21 May 2025 14:07:02 +0500 Subject: [PATCH] fix: handle Runner in BotController reason: earlier, Runner and js runtime in it were freed after init of BotController, which potentially was able to lead into hanging function in config without runtime, BUT, there is check in in JS_FreeRuntime to have zero objects, so bug found without hesitation ;) --- src/main.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4a81130..689b5f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -105,6 +105,7 @@ pub struct BotController { pub bot: Bot, pub db: DB, pub rc: RunnerConfig, + pub runner: Runner, } impl BotController { @@ -112,9 +113,15 @@ impl BotController { let bot = Bot::new(&config.bot_token); let db = DB::init(&config.db_url).await?; - let rc = Runner::init()?.init_config(include_str!("../mainbot.js"))?; + let runner = Runner::init()?; + let rc = runner.init_config(include_str!("../mainbot.js"))?; - Ok(Self { bot, db, rc }) + Ok(Self { + bot, + db, + rc, + runner, + }) } }