[Libreoffice-commits] online.git: wsd/DocumentBroker.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Fri Apr 7 04:47:49 UTC 2017
wsd/DocumentBroker.cpp | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
New commits:
commit 37f499a7f631d1909a71a026c8ae8853d7d65fc3
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Thu Apr 6 23:38:54 2017 -0400
wsd: merge DocumentBroker poll exit conditions
These conditions must be checked together. Otherwise we might
set _stop prematurely.
Change-Id: I3de0d2b3833959593315669ad245f94c1243f7f7
Reviewed-on: https://gerrit.libreoffice.org/36242
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index eb53f195..f7bbd9f1 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -234,19 +234,14 @@ void DocumentBroker::pollThread()
last30SecCheckTime = std::chrono::steady_clock::now();
}
- // If all sessions have been removed, no reason to linger.
- if (_sessions.empty() && std::chrono::duration_cast<std::chrono::milliseconds>
- (std::chrono::steady_clock::now() - _lastSaveRequestTime).count() > COMMAND_TIMEOUT_MS)
- {
- LOG_INF("No more sessions in doc [" << _docKey << "]. Terminating.");
- _stop = true;
- }
+ const bool notSaving = (std::chrono::duration_cast<std::chrono::milliseconds>
+ (std::chrono::steady_clock::now() - _lastSaveRequestTime).count() > COMMAND_TIMEOUT_MS);
// Remove idle documents after 1 hour.
- const bool idle = getIdleTimeSecs() >= 3600;
+ const bool idle = (getIdleTimeSecs() >= 3600);
- // Cleanup used and dead entries.
- if ((isLoaded() || _markToDestroy) &&
+ // If all sessions have been removed, no reason to linger.
+ if ((isLoaded() || _markToDestroy) && notSaving &&
(_sessions.empty() || !isAlive() || idle))
{
LOG_INF("Terminating " << (idle ? "idle" : "dead") <<
More information about the Libreoffice-commits
mailing list