From f8622633546aff751baa0e922b5ed15801882206 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Wed, 6 Jan 2021 15:33:16 +0100 Subject: [PATCH] Speed up MistInBuffer shutdown time --- lib/procs.cpp | 5 ++++- lib/procs.h | 1 + src/input/input_buffer.cpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/procs.cpp b/lib/procs.cpp index 8500af4a..a1aa91d5 100644 --- a/lib/procs.cpp +++ b/lib/procs.cpp @@ -29,6 +29,9 @@ bool Util::Procs::thread_handler = false; tthread::mutex Util::Procs::plistMutex; tthread::thread *Util::Procs::reaper_thread = 0; +/// How many seconds to wait when shutting down child processes. Defaults to 10 +int Util::Procs::kill_timeout = 10; + /// Local-only function. Attempts to reap child and returns current running status. bool Util::Procs::childRunning(pid_t p){ int status; @@ -98,7 +101,7 @@ void Util::Procs::exit_handler(){ (int)listcopy.size()); waiting = 0; // wait up to 10 seconds for applications to shut down - while (!listcopy.empty() && waiting <= 500){ + while (!listcopy.empty() && waiting <= 50*Util::Procs::kill_timeout){ bool doWait = true; for (it = listcopy.begin(); it != listcopy.end(); it++){ if (!childRunning(*it)){ diff --git a/lib/procs.h b/lib/procs.h index bbe23309..bf46036f 100644 --- a/lib/procs.h +++ b/lib/procs.h @@ -42,5 +42,6 @@ namespace Util{ static void forget(pid_t pid); static void remember(pid_t pid); static std::set socketList; ///< Holds sockets that should be closed before forking + static int kill_timeout; }; }// namespace Util diff --git a/src/input/input_buffer.cpp b/src/input/input_buffer.cpp index ac4262b2..850d46a5 100644 --- a/src/input/input_buffer.cpp +++ b/src/input/input_buffer.cpp @@ -573,6 +573,7 @@ namespace Mist{ bool inputBuffer::preRun(){ // This function gets run periodically to make sure runtime updates of the config get parsed. + Util::Procs::kill_timeout = 5; std::string strName = config->getString("streamname"); Util::sanitizeName(strName); strName = strName.substr(0, (strName.find_first_of("+ ")));