aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2018-10-15 13:28:42 +0200
committerRiccardo Spagni <ric@spagni.net>2018-10-15 13:28:42 +0200
commitf916ef81f1e8048fadffc304f84932c3a94ede89 (patch)
tree4efd7617a23ab2cc1383a83f54bffb66b2cee159 /src
parentMerge pull request #4567 (diff)
parentdaemon: do not run complex code in a signal handler (diff)
downloadmonero-f916ef81f1e8048fadffc304f84932c3a94ede89.tar.xz
Merge pull request #4571
c3b8328c daemon: do not run complex code in a signal handler (moneromooo-monero) e736964a Remove epee header dependency on cryptonote_core (moneromooo-monero)
Diffstat (limited to 'src')
-rw-r--r--src/daemon/daemon.cpp9
-rw-r--r--src/debug_utilities/object_sizes.cpp1
-rw-r--r--src/p2p/net_node.cpp1
-rw-r--r--src/wallet/wallet_rpc_server.h1
4 files changed, 11 insertions, 1 deletions
diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp
index ea24e32eb..f53649518 100644
--- a/src/daemon/daemon.cpp
+++ b/src/daemon/daemon.cpp
@@ -136,7 +136,14 @@ bool t_daemon::run(bool interactive)
{
throw std::runtime_error{"Can't run stopped daemon"};
}
- tools::signal_handler::install(std::bind(&daemonize::t_daemon::stop_p2p, this));
+
+ std::atomic<bool> stop(false);
+ boost::thread([&stop, this] {
+ while (!stop)
+ epee::misc_utils::sleep_no_w(100);
+ this->stop_p2p();
+ }).detach();
+ tools::signal_handler::install([&stop](int){ stop = true; });
try
{
diff --git a/src/debug_utilities/object_sizes.cpp b/src/debug_utilities/object_sizes.cpp
index ab8839636..2281d0734 100644
--- a/src/debug_utilities/object_sizes.cpp
+++ b/src/debug_utilities/object_sizes.cpp
@@ -29,6 +29,7 @@
#include <map>
#include "cryptonote_basic/cryptonote_basic.h"
#include "cryptonote_basic/tx_extra.h"
+#include "cryptonote_core/cryptonote_core.h"
#include "cryptonote_core/blockchain.h"
#include "p2p/p2p_protocol_defs.h"
#include "net/connection_basic.hpp"
diff --git a/src/p2p/net_node.cpp b/src/p2p/net_node.cpp
index c9ca63f43..e9d2061e8 100644
--- a/src/p2p/net_node.cpp
+++ b/src/p2p/net_node.cpp
@@ -29,6 +29,7 @@
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
#include "common/command_line.h"
+#include "cryptonote_core/cryptonote_core.h"
#include "net_node.h"
namespace nodetool
diff --git a/src/wallet/wallet_rpc_server.h b/src/wallet/wallet_rpc_server.h
index ab896aa3b..35ea11902 100644
--- a/src/wallet/wallet_rpc_server.h
+++ b/src/wallet/wallet_rpc_server.h
@@ -35,6 +35,7 @@
#include <string>
#include "common/util.h"
#include "net/http_server_impl_base.h"
+#include "math_helper.h"
#include "wallet_rpc_server_commands_defs.h"
#include "wallet2.h"