diff --git a/simulator/sim_lib/console.cpp b/simulator/sim_lib/console.cpp index ae8f34d..b632e91 100644 --- a/simulator/sim_lib/console.cpp +++ b/simulator/sim_lib/console.cpp @@ -36,7 +36,8 @@ Console_c::Console_c(const Configuration_c &aConfig, CLogger_c &aLogger, uint16_ mMapBackspace(aConfig.get("MapBackspace", true)), mBackspaceChar(aConfig.get("BackspaceChar", 127) & 0xff), mDisableAutoTerminal(aDisableAutoTerminal), - mLogInitialized(false) + mLogInitialized(false), + mInSendFromQueue(0) { if (!mConsoleCommand.is_initialized()) { mConsoleCommand = aConfig.get_optional("ConsoleCommand"); @@ -115,11 +116,15 @@ void Console_c::SendFromQueue() { *mConnectionSocket, boost::asio::buffer(Head.mData), boost::bind(&Console_c::WriteHandler, this, boost::asio::placeholders::error) - ); - //for (int i = 0; i < 100; ++i) { - // mIoService.reset(); - // mIoService.poll(); - //} + ); + for (int i = 0; i < 100; ++i) { + if (mInSendFromQueue < 100) { + ++mInSendFromQueue; + mIoService.reset(); + mIoService.poll(); + --mInSendFromQueue; + } + } } catch (boost::system::system_error &) { CloseSocket(); diff --git a/simulator/sim_lib/console.h b/simulator/sim_lib/console.h index 183d640..8c5be84 100644 --- a/simulator/sim_lib/console.h +++ b/simulator/sim_lib/console.h @@ -116,6 +116,7 @@ protected: // std::string mTransmitBuf; // bool mTransmitFull; bool mAccepted; + int mInSendFromQueue; void CloseSocket(); void AcceptHandler(const boost::system::error_code& aError);