summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2020-12-06 14:02:46 -0500
committerMichael Meeks <michael.meeks@collabora.com>2020-12-08 09:26:41 +0000
commit90f79998fbee6c92cfa8d08247dd048214fe51e7 (patch)
tree10226c595fa023ca72c9c340cd67e6632263f6e0
parentwsd: use chrono datatypes as much as possible (diff)
downloadonline-90f79998fbee6c92cfa8d08247dd048214fe51e7.tar.gz
online-90f79998fbee6c92cfa8d08247dd048214fe51e7.zip
wsd: convert limitLifeSeconds from int to chrono
No advantage in using int when chrono handles conversion and comparisons transparently for us. Change-Id: Idc942e7a2557ef979d876f378cf6bb84d3e657cd Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
-rw-r--r--wsd/DocumentBroker.cpp24
-rw-r--r--wsd/DocumentBroker.hpp2
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;