[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4' - wsd/DocumentBroker.cpp wsd/LOOLWSD.cpp

Tor Lillqvist (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 1 07:51:09 UTC 2019


 wsd/DocumentBroker.cpp |    6 ++----
 wsd/LOOLWSD.cpp        |    2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

New commits:
commit 14fe58adb48865be947c78c04df4b3c4a163f08e
Author:     Tor Lillqvist <tml at collabora.com>
AuthorDate: Mon Sep 30 23:59:53 2019 +0300
Commit:     Tor Lillqvist <tml at collabora.com>
CommitDate: Tue Oct 1 09:50:51 2019 +0200

    tdf#125575: Don't be so eager to clean up too early in the MOBILEAPP case
    
    It's not needed in an app, and causes misbehaviour when the lifecycle
    of DocumentBroker objects gets screwed up.
    
    Many of the desperate attempts to "clean up" here and there in the
    code are likely relevant only in web-based Online to catch weird error
    situations. In an app our objects hopefully have a much simpler
    lifecycle.
    
    Change-Id: I788171cd1ca114ecaca276a7f24185ff67b984c7
    Reviewed-on: https://gerrit.libreoffice.org/79902
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>

diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 1b09c2f07..8b0011fcd 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -340,11 +340,9 @@ void DocumentBroker::pollThread()
             last30SecCheckTime = std::chrono::steady_clock::now();
         }
 
-        if (false)
-            ;
 #if !MOBILEAPP
         // Remove idle documents after 1 hour.
-        else if ((isLoaded() && getIdleTimeSecs() >= IdleDocTimeoutSecs))
+        if ((isLoaded() && getIdleTimeSecs() >= IdleDocTimeoutSecs))
         {
             // Stop if there is nothing to save.
             LOG_INF("Autosaving idle DocumentBroker for docKey [" << getDocKey() << "] to kill.");
@@ -354,13 +352,13 @@ void DocumentBroker::pollThread()
                 stop("idle");
             }
         }
-#endif
         else if (_sessions.empty() && (isLoaded() || _markToDestroy))
         {
             // If all sessions have been removed, no reason to linger.
             LOG_INF("Terminating dead DocumentBroker for docKey [" << getDocKey() << "].");
             stop("dead");
         }
+#endif
     }
 
     LOG_INF("Finished polling doc [" << _docKey << "]. stop: " << _stop << ", continuePolling: " <<
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 14eabf0ac..2c47170c4 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -1567,10 +1567,10 @@ void PrisonerPoll::wakeupHook()
 #endif
         }
     }
-#endif
     std::unique_lock<std::mutex> docBrokersLock(DocBrokersMutex, std::defer_lock);
     if (docBrokersLock.try_lock())
         cleanupDocBrokers();
+#endif
 }
 
 #if !MOBILEAPP


More information about the Libreoffice-commits mailing list