diff options
-rw-r--r-- | wsd/DocumentBroker.cpp | 24 | ||||
-rw-r--r-- | wsd/DocumentBroker.hpp | 2 |
2 files changed, 15 insertions, 11 deletions
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index 9d9f31cb35..b9bfdc950b 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -163,7 +163,7 @@ DocumentBroker::DocumentBroker(ChildType type, const Poco::URI& uriPublic, const std::string& docKey, unsigned mobileAppDocId) : - _limitLifeSeconds(0), + _limitLifeSeconds(std::chrono::seconds::zero()), _uriOrig(uri), _type(type), _uriPublic(uriPublic), @@ -335,19 +335,22 @@ void DocumentBroker::pollThread() continue; } - if (_limitLifeSeconds > 0 && - std::chrono::duration_cast<std::chrono::seconds>(now - _threadStart).count() > _limitLifeSeconds) + // Check if we had a sunset time and expired. + if (_limitLifeSeconds > std::chrono::seconds::zero() + && std::chrono::duration_cast<std::chrono::seconds>(now - _threadStart) + > _limitLifeSeconds) { LOG_WRN("Doc [" << _docKey << "] is taking too long to convert. Will kill process [" - << _childProcess->getPid() << "]. per_document.limit_convert_secs set to " - << _limitLifeSeconds << " secs."); + << _childProcess->getPid() + << "]. per_document.limit_convert_secs set to " + << _limitLifeSeconds.count() << " secs."); broadcastMessage("error: cmd=load kind=docexpired"); // Brutal but effective. if (_childProcess) _childProcess->terminate(); - stop("Load timed out"); + stop("Convert-to timed out"); continue; } @@ -2455,9 +2458,10 @@ ConvertToBroker::ConvertToBroker(const std::string& uri, << "], docKey: [" << docKey << "], format: [" << format << "], options: [" << sOptions << "]."); - static const int limit_convert_secs = LOOLWSD::getConfigValue<int>("per_document.limit_convert_secs", 100); - NumConverters++; + static const std::chrono::seconds limit_convert_secs( + LOOLWSD::getConfigValue<int>("per_document.limit_convert_secs", 100)); _limitLifeSeconds = limit_convert_secs; + ++NumConverters; } bool ConvertToBroker::startConversion(SocketDisposition &disposition, const std::string &id) @@ -2592,8 +2596,8 @@ void DocumentBroker::dumpState(std::ostream& os) os << "\n last storage save was successful: " << isLastStorageSaveSuccessful(); os << "\n last modified: " << Util::getHttpTime(_documentLastModifiedTime); os << "\n file last modified: " << Util::getHttpTime(_lastFileModifiedTime); - if (_limitLifeSeconds) - os << "\n life limit in seconds: " << _limitLifeSeconds; + if (_limitLifeSeconds > std::chrono::seconds::zero()) + os << "\n life limit in seconds: " << _limitLifeSeconds.count(); os << "\n idle time: " << getIdleTimeSecs(); os << "\n cursor " << _cursorPosX << ", " << _cursorPosY << "( " << _cursorWidth << ',' << _cursorHeight << ")\n"; diff --git a/wsd/DocumentBroker.hpp b/wsd/DocumentBroker.hpp index acbb262b33..27f01175bf 100644 --- a/wsd/DocumentBroker.hpp +++ b/wsd/DocumentBroker.hpp @@ -413,7 +413,7 @@ private: protected: /// Seconds to live for, or 0 forever - int64_t _limitLifeSeconds; + std::chrono::seconds _limitLifeSeconds; std::string _uriOrig; /// What type are we: affects priority. ChildType _type; |