From deb1b401cc0a00521e2fdea6b881f32e5a351b2c Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 6 Nov 2019 08:16:33 +0100 Subject: wandac: don't stop the commander while handling events --- src/wanda/wandac.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/wanda/wandac.cpp b/src/wanda/wandac.cpp index 1d317db..0d329a4 100644 --- a/src/wanda/wandac.cpp +++ b/src/wanda/wandac.cpp @@ -51,8 +51,9 @@ struct cli struct listener : wanda::commander::listener { - listener(::cli & cli) + listener(::cli & cli, asio::io_service & service) : m_cli{cli} + , m_service{service} { } @@ -61,12 +62,15 @@ struct listener : wanda::commander::listener if (m_cli.command == "change") { commander.send(wanda::make_change_command()); - commander.stop(); + m_service.post([&]{ + commander.stop(); + }); } } private: ::cli & m_cli; + asio::io_service & m_service; }; int main(int argc, char const * const * argv) @@ -86,7 +90,7 @@ int main(int argc, char const * const * argv) auto interface = wanda::xdg_path_for(wanda::xdg_directory::runtime_dir, wanda::environment{}) / ".wanda_interface"; auto service = asio::io_service{}; - auto listener = ::listener{cli}; + auto listener = ::listener{cli, service}; auto commander = wanda::commander{service, interface, listener}; @@ -94,4 +98,4 @@ int main(int argc, char const * const * argv) commander.start(); service.run(); -} \ No newline at end of file +} -- cgit v1.2.3