wallet_rpc_server: exit async, so we reply to stop_wallet RPC
Reported by saddam
This commit is contained in:
parent
9847db6920
commit
61ce8d6fde
|
@ -57,6 +57,7 @@ namespace tools
|
||||||
//------------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------------
|
||||||
bool wallet_rpc_server::run()
|
bool wallet_rpc_server::run()
|
||||||
{
|
{
|
||||||
|
m_stop = false;
|
||||||
m_net_server.add_idle_handler([this](){
|
m_net_server.add_idle_handler([this](){
|
||||||
try {
|
try {
|
||||||
m_wallet.refresh();
|
m_wallet.refresh();
|
||||||
|
@ -65,6 +66,14 @@ namespace tools
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}, 20000);
|
}, 20000);
|
||||||
|
m_net_server.add_idle_handler([this](){
|
||||||
|
if (m_stop.load(std::memory_order_relaxed))
|
||||||
|
{
|
||||||
|
send_stop_signal();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, 500);
|
||||||
|
|
||||||
//DO NOT START THIS SERVER IN MORE THEN 1 THREADS WITHOUT REFACTORING
|
//DO NOT START THIS SERVER IN MORE THEN 1 THREADS WITHOUT REFACTORING
|
||||||
return epee::http_server_impl_base<wallet_rpc_server, connection_context>::run(1, true);
|
return epee::http_server_impl_base<wallet_rpc_server, connection_context>::run(1, true);
|
||||||
|
@ -648,8 +657,8 @@ namespace tools
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
send_stop_signal();
|
|
||||||
m_wallet.store();
|
m_wallet.store();
|
||||||
|
m_stop.store(true, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -102,5 +102,6 @@ namespace tools
|
||||||
wallet2& m_wallet;
|
wallet2& m_wallet;
|
||||||
std::string m_port;
|
std::string m_port;
|
||||||
std::string m_bind_ip;
|
std::string m_bind_ip;
|
||||||
|
std::atomic<bool> m_stop;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue