From 072f2c93efb561eeaad34bc78c617be53058d2f9 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 1 Oct 2013 11:06:32 -0700 Subject: [PATCH] Do the initial work on new pathfinding requests without holding the master lock. --- src/ripple_app/rpc/RPCHandler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ripple_app/rpc/RPCHandler.cpp b/src/ripple_app/rpc/RPCHandler.cpp index 02eded514..06483a90f 100644 --- a/src/ripple_app/rpc/RPCHandler.cpp +++ b/src/ripple_app/rpc/RPCHandler.cpp @@ -1351,6 +1351,9 @@ Json::Value RPCHandler::doRandom (Json::Value params, LoadType* loadType, Applic Json::Value RPCHandler::doPathFind (Json::Value params, LoadType* loadType, Application::ScopedLockType& masterLockHolder) { + Ledger::pointer lpLedger = mNetOps->getClosedLedger(); + masterLockHolder.unlock(); + if (!params.isMember ("subcommand") || !params["subcommand"].isString ()) return rpcError (rpcINVALID_PARAMS); @@ -1363,7 +1366,7 @@ Json::Value RPCHandler::doPathFind (Json::Value params, LoadType* loadType, Appl { mInfoSub->clearPathRequest (); PathRequest::pointer request = boost::make_shared (mInfoSub); - Json::Value result = request->doCreate (mNetOps->getClosedLedger (), params); + Json::Value result = request->doCreate (lpLedger, params); if (request->isValid ()) {