summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/Root.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/Root.cpp b/source/Root.cpp
index 771986003..59242c60d 100644
--- a/source/Root.cpp
+++ b/source/Root.cpp
@@ -72,11 +72,20 @@ void cRoot::InputThread(void * a_Params)
cLogCommandOutputCallback Output;
- while (!(self.m_bStop || self.m_bRestart))
+ while (!(self.m_bStop || self.m_bRestart) && std::cin.good())
{
std::string Command;
std::getline(std::cin, Command);
- self.ExecuteConsoleCommand(Command, Output);
+ if (!Command.empty())
+ {
+ self.ExecuteConsoleCommand(Command, Output);
+ }
+ }
+
+ if (!(self.m_bStop || self.m_bRestart))
+ {
+ // We have come here because the std::cin has received an EOF and the server is still running; stop the server:
+ self.m_bStop = true;
}
}