From 835236a35c083672e9a7b64c18d29fd92ff3a97e Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 29 Aug 2013 18:03:45 -0700 Subject: [PATCH] Add a 'returnMessage' function to return a received message. --- modules/ripple_app/websocket/WSConnection.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/ripple_app/websocket/WSConnection.h b/modules/ripple_app/websocket/WSConnection.h index dd60bbfa1b..2938f0700c 100644 --- a/modules/ripple_app/websocket/WSConnection.h +++ b/modules/ripple_app/websocket/WSConnection.h @@ -242,7 +242,7 @@ public: else { msgRejected = false; - mRcvQueue.push (msg); + mRcvQueue.push_back (msg); if (mRcvQueueRunning) runQueue = false; @@ -265,10 +265,18 @@ public: } message_ptr m = mRcvQueue.front (); - mRcvQueue.pop (); + mRcvQueue.pop_front (); return m; } + void returnMessage (message_ptr ptr) + { + ScopedLockType sl (mRcvQueueLock, __FILE__, __LINE__); + + if (!mDead) + mRcvQueue.push_front(ptr); + } + private: typedef void (WSConnection::*doFuncPtr) (Json::Value& jvResult, Json::Value& jvRequest); @@ -283,7 +291,7 @@ private: boost::asio::deadline_timer mPingTimer; bool mPinged; - std::queue mRcvQueue; + std::deque mRcvQueue; bool mRcvQueueRunning; bool mDead; };