diff --git a/src/cpp/ripple/Application.cpp b/src/cpp/ripple/Application.cpp index c8e1a1453..c64deb311 100644 --- a/src/cpp/ripple/Application.cpp +++ b/src/cpp/ripple/Application.cpp @@ -46,7 +46,7 @@ DatabaseCon::~DatabaseCon() } Application::Application() : -// mIOService(2), + mIOService((theConfig.NODE_SIZE >= 2) ? 2 : 1), mIOWork(mIOService), mAuxWork(mAuxService), mUNL(mIOService), mNetOps(mIOService, &mLedgerMaster), mTempNodeCache("NodeCache", 16384, 90), mHashedObjectStore(16384, 300), mSLECache("LedgerEntryCache", 4096, 120), mSNTPClient(mAuxService), mJobQueue(mIOService), mFeeTrack(), @@ -100,6 +100,12 @@ static void runAux(boost::asio::io_service& svc) svc.run(); } +static void runIO(boost::asio::io_service& io) +{ + NameThread("io"); + io.run(); +} + void Application::setup() { mJobQueue.setThreadCount(); @@ -307,6 +313,11 @@ void Application::setup() void Application::run() { + if (theConfig.NODE_SIZE >= 2) + { + boost::thread(boost::bind(runIO, boost::ref(mIOService))).detach(); + } + mIOService.run(); // This blocks if (mWSPublicDoor)