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

Tor Lillqvist tml at collabora.com
Thu Mar 3 16:39:38 UTC 2016


 loolwsd/LOOLKit.cpp |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit 2103fe2515b7c71aff546dc00fe8a46721abdfa2
Author: Tor Lillqvist <tml at collabora.com>
Date:   Thu Mar 3 18:35:48 2016 +0200

    Revert "We use a recursive mutex, so no need to drop and re-take around documentLoad()"
    
    Turns out the callbacks from documentLoad() are in general done on
    another thread, not necessarily the same one that did the
    documentLoad() call. Not sure why it happened to be the same thread
    for me, but oh well. Need to fix the problem described in
    3671abf89b376555394b22bfee25d450e7eff5f6 in some other way then.
    
    This reverts commit 2fab7574626919d66c637f40302cb00e8d280b3f.

diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index 7942436..31b659d 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -620,6 +620,9 @@ private:
                                                     LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY);
             }
 
+            // documentLoad will trigger callback, which needs to take the lock.
+            lock.unlock();
+
             // Save the provided password with us and the jailed url
             _isDocPasswordProvided = isDocPasswordProvided;
             _docPassword = docPassword;
@@ -649,6 +652,8 @@ private:
                 return nullptr;
             }
             Log::info("documentLoad() returned");
+            // Retake the lock.
+            lock.lock();
 
             if (_multiView)
             {


More information about the Libreoffice-commits mailing list