diff options
| author | MarcoFalke <[email protected]> | 2020-05-22 15:38:48 -0400 |
|---|---|---|
| committer | MarcoFalke <[email protected]> | 2020-05-22 15:52:37 -0400 |
| commit | fa7fc5a8e0fcf9ca81e84b3631f18ae40502be60 (patch) | |
| tree | 422665e4954f8f50a026e4a165ccfc35a72a8d9c /src | |
| parent | Merge #19014: test: Replace TEST_PREVIOUS_RELEASES env var with test_framewor... (diff) | |
| download | discoin-fa7fc5a8e0fcf9ca81e84b3631f18ae40502be60.tar.xz discoin-fa7fc5a8e0fcf9ca81e84b3631f18ae40502be60.zip | |
rpc: factor out RpcInterruptionPoint from dumptxoutset
Diffstat (limited to 'src')
| -rw-r--r-- | src/rpc/blockchain.cpp | 4 | ||||
| -rw-r--r-- | src/rpc/server.cpp | 7 | ||||
| -rw-r--r-- | src/rpc/server.h | 5 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index ac567e16c..80ae35f48 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -2329,9 +2329,7 @@ UniValue dumptxoutset(const JSONRPCRequest& request) unsigned int iter{0}; while (pcursor->Valid()) { - if (iter % 5000 == 0 && !IsRPCRunning()) { - throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Shutting down"); - } + if (iter % 5000 == 0) RpcInterruptionPoint(); ++iter; if (pcursor->GetKey(key) && pcursor->GetValue(coin)) { afile << key; diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 219979f09..99c649d15 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -11,9 +11,9 @@ #include <util/strencodings.h> #include <util/system.h> -#include <boost/signals2/signal.hpp> #include <boost/algorithm/string/classification.hpp> #include <boost/algorithm/string/split.hpp> +#include <boost/signals2/signal.hpp> #include <memory> // for unique_ptr #include <unordered_map> @@ -309,6 +309,11 @@ bool IsRPCRunning() return g_rpc_running; } +void RpcInterruptionPoint() +{ + if (!IsRPCRunning()) throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Shutting down"); +} + void SetRPCWarmupStatus(const std::string& newStatus) { LOCK(cs_rpcWarmup); diff --git a/src/rpc/server.h b/src/rpc/server.h index c91bf1f61..d7a04ff6e 100644 --- a/src/rpc/server.h +++ b/src/rpc/server.h @@ -9,10 +9,10 @@ #include <amount.h> #include <rpc/request.h> +#include <functional> #include <map> #include <stdint.h> #include <string> -#include <functional> #include <univalue.h> @@ -29,6 +29,9 @@ namespace RPCServer /** Query whether RPC is running */ bool IsRPCRunning(); +/** Throw JSONRPCError if RPC is not running */ +void RpcInterruptionPoint(); + /** * Set the RPC warmup status. When this is done, all RPC calls will error out * immediately with RPC_IN_WARMUP. |