[Libreoffice-commits] online.git: loolwsd/DocumentBroker.cpp loolwsd/TileCache.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Wed Sep 21 05:18:27 UTC 2016


 loolwsd/DocumentBroker.cpp |   12 +++++-------
 loolwsd/TileCache.cpp      |    2 +-
 2 files changed, 6 insertions(+), 8 deletions(-)

New commits:
commit ae4a9f7110f6d6677b3f3ef5d545f8021222d5da
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Tue Sep 20 22:26:19 2016 -0400

    loolwsd: always request newer tile version
    
    And accept any version newer than expected.
    
    Since we have proper de-duplication of tiles
    requesting newer versions reduces changes of
    races between client and the renderer.
    
    Change-Id: I30bb53f98ef6f1461b53c1cf527d315dc35f7f26
    Reviewed-on: https://gerrit.libreoffice.org/29125
    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 55ecbfa..289842c 100644
--- a/loolwsd/DocumentBroker.cpp
+++ b/loolwsd/DocumentBroker.cpp
@@ -510,14 +510,12 @@ void DocumentBroker::handleTileRequest(TileDesc& tile,
         return;
     }
 
-    if (tileCache().subscribeToTileRendering(tile, session) > 0)
-    {
-        Log::debug() << "Sending render request for tile (" << tile.getPart() << ',' << tile.getTilePosX() << ',' << tile.getTilePosY() << ")." << Log::end;
+    tileCache().subscribeToTileRendering(tile, session);
 
-        // Forward to child to render.
-        const std::string request = "tile " + tile.serialize();
-        _childProcess->getWebSocket()->sendFrame(request.data(), request.size());
-    }
+    // Forward to child to render.
+    Log::debug() << "Sending render request for tile (" << tile.getPart() << ',' << tile.getTilePosX() << ',' << tile.getTilePosY() << ")." << Log::end;
+    const std::string request = "tile " + tile.serialize();
+    _childProcess->getWebSocket()->sendFrame(request.data(), request.size());
 }
 
 void DocumentBroker::handleTileCombinedRequest(TileCombined& tileCombined,
diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index eb8e8d8..416543e 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -195,7 +195,7 @@ void TileCache::saveTileAndNotify(const TileDesc& tile, const char *data, const
         }
 
         // Remove subscriptions.
-        if (tileBeingRendered->getVersion() == tile.getVersion())
+        if (tileBeingRendered->getVersion() <= tile.getVersion())
         {
             Log::debug() << "STATISTICS: tile " << tile.getVersion() << " internal roundtrip "
                          << tileBeingRendered->getElapsedTimeMs() << " ms." << Log::end;


More information about the Libreoffice-commits mailing list