[Libreoffice-commits] online.git: loolwsd/DocumentBroker.cpp loolwsd/LOOLWSD.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon May 9 05:30:16 UTC 2016
loolwsd/DocumentBroker.cpp | 16 ++++++++++------
loolwsd/LOOLWSD.cpp | 5 +----
2 files changed, 11 insertions(+), 10 deletions(-)
New commits:
commit b06a07f6bc7149ffd497af5634e835f604d97d5f
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Mon May 9 01:11:09 2016 -0400
loolwsd: auto-save checks modified state and logs decision
Change-Id: I69d32e8c5ceabd46b635aa6c5bb30ade21101fd0
Reviewed-on: https://gerrit.libreoffice.org/24785
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/DocumentBroker.cpp b/loolwsd/DocumentBroker.cpp
index f0e6173..b51f872 100644
--- a/loolwsd/DocumentBroker.cpp
+++ b/loolwsd/DocumentBroker.cpp
@@ -219,19 +219,23 @@ bool DocumentBroker::save()
bool DocumentBroker::autoSave(const bool force, const size_t waitTimeoutMs)
{
- Log::trace("Autosaving [" + _docKey + "].");
-
std::unique_lock<std::mutex> lock(_mutex);
- if (_sessions.empty() || _storage == nullptr || !_isLoaded)
+ if (_sessions.empty() || _storage == nullptr || !_isLoaded ||
+ (!_isModified && !force))
{
// Nothing to do.
Log::trace("Nothing to autosave [" + _docKey + "].");
return true;
}
+ // Remeber the last save time, since this is the predicate.
+ const auto lastSaveTime = _lastSaveTime;
+ Log::trace("Autosaving [" + _docKey + "].");
+
bool sent = false;
if (force)
{
+ Log::trace("Sending forced save command for [" + _docKey + "].");
sent = sendUnoSave();
}
else if (_isModified)
@@ -251,17 +255,17 @@ bool DocumentBroker::autoSave(const bool force, const size_t waitTimeoutMs)
if (inactivityTimeMs >= IdleSaveDurationMs ||
timeSinceLastSaveMs >= AutoSaveDurationMs)
{
+ Log::trace("Sending timed save command for [" + _docKey + "].");
sent = sendUnoSave();
}
}
if (sent && waitTimeoutMs > 0)
{
- // Remeber the last save time, since this is the predicate.
- const auto lastSaveTime = _lastSaveTime;
-
+ Log::trace("Waiting for save event for [" + _docKey + "].");
if (_saveCV.wait_for(lock, std::chrono::milliseconds(waitTimeoutMs)) == std::cv_status::no_timeout)
{
+ Log::debug("Successfully persisted document [" + _docKey + "].");
return true;
}
diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 25a3801..48b8d05 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -1641,10 +1641,7 @@ int LOOLWSD::main(const std::vector<std::string>& /*args*/)
std::unique_lock<std::mutex> docBrokersLock(docBrokersMutex);
for (auto& brokerIt : docBrokers)
{
- if (brokerIt.second->isModified())
- {
- brokerIt.second->autoSave(false, 0);
- }
+ brokerIt.second->autoSave(false, 0);
}
}
catch (const std::exception& exc)
More information about the Libreoffice-commits
mailing list