diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2022-01-31 18:59:50 -0500 |
---|---|---|
committer | Ashod Nakashian <Ashod@users.noreply.github.com> | 2022-02-08 20:46:01 -0500 |
commit | 2f19b8bdef04a7e60c7498891798607098564f21 (patch) | |
tree | 50b38c36cdce7630d11b6174e007085b37a09c85 /wsd/DocumentBroker.cpp | |
parent | wsd: reuse autoSaveAndStop for consistentcy (diff) | |
download | online-2f19b8bdef04a7e60c7498891798607098564f21.tar.gz online-2f19b8bdef04a7e60c7498891798607098564f21.zip |
wsd: merge unloading logic and centralize
Change-Id: Idfae52b5f76ef26795a57af646eef7c4a0e44b0b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Diffstat (limited to 'wsd/DocumentBroker.cpp')
-rw-r--r-- | wsd/DocumentBroker.cpp | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index eb18819f77..2bbb975c85 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -359,7 +359,34 @@ void DocumentBroker::pollThread() // Nothing more to do until the save is complete. continue; } - else if (SigUtil::getShutdownRequestFlag() || _docState.isCloseRequested()) + +#if !MOBILEAPP + // Remove idle documents after 1 hour. + if (isLoaded() && getIdleTimeSecs() >= IdleDocTimeoutSecs) + { + autoSaveAndStop("idle"); + } + else +#endif + if (_sessions.empty() && (isLoaded() || _docState.isMarkedToDestroy())) + { + if (!isLoaded()) + { + // Nothing to do; no sessions, not loaded, marked to destroy. + stop("dead"); + } + else if (_saveManager.isSaving() || isAsyncUploading()) + { + LOG_DBG("Don't terminate dead DocumentBroker: async saving in progress for " + "docKey [" + << getDocKey() << "]."); + continue; + } + + autoSaveAndStop("dead"); + } + else if (_docState.isUnloadRequested() || SigUtil::getShutdownRequestFlag() || + _docState.isCloseRequested()) { const std::string reason = SigUtil::getShutdownRequestFlag() @@ -408,33 +435,7 @@ void DocumentBroker::pollThread() lastClipboardHashUpdateTime = now; } - - // Remove idle documents after 1 hour. - if (isLoaded() && getIdleTimeSecs() >= IdleDocTimeoutSecs) - { - autoSaveAndStop("idle"); - } - else #endif - if (_sessions.empty() && (isLoaded() || _docState.isMarkedToDestroy())) - { - if (!isLoaded()) - { - // Nothing to do; no sessions, not loaded, marked to destroy. - stop("dead"); - } - else if (_saveManager.isSaving() || isAsyncUploading()) - { - LOG_DBG("Don't terminate dead DocumentBroker: async saving in progress for docKey [" << getDocKey() << "]."); - continue; - } - - autoSaveAndStop("dead"); - } - else if (_docState.isUnloadRequested()) - { - autoSaveAndStop("unloading"); - } } LOG_INF("Finished polling doc [" << _docKey << "]. stop: " << _stop << ", continuePolling: " << |