fix ^D exit for bitmonerod

It uses the async console handler differently than simplewallet,
and wasn't running the same exit code, causing it to never actually
exit after breaking out of the console entry loop.
This commit is contained in:
moneromooo-monero 2015-06-03 22:42:30 +01:00
parent 5df550d276
commit 35b160edea
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
4 changed files with 12 additions and 12 deletions

View file

@ -196,11 +196,11 @@ bool t_command_server::process_command_vec(const std::vector<std::string>& cmd)
return result;
}
bool t_command_server::start_handling()
bool t_command_server::start_handling(std::function<void(void)> exit_handler)
{
if (m_is_rpc) return false;
m_command_lookup.start_handling("", get_commands_str());
m_command_lookup.start_handling("", get_commands_str(), exit_handler);
return true;
}

View file

@ -62,7 +62,7 @@ public:
bool process_command_vec(const std::vector<std::string>& cmd);
bool start_handling();
bool start_handling(std::function<void(void)> exit_handler = NULL);
void stop_handling();

View file

@ -126,7 +126,7 @@ bool t_daemon::run(bool interactive)
if (interactive)
{
rpc_commands = new daemonize::t_command_server(0, 0, false, mp_internals->rpc.get_server());
rpc_commands->start_handling();
rpc_commands->start_handling(std::bind(&daemonize::t_daemon::stop, this));
}
mp_internals->p2p.run(); // blocks until p2p goes down