[Libreoffice-commits] online.git: 2 commits - kit/Kit.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon Jan 2 05:57:42 UTC 2017
kit/Kit.cpp | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
New commits:
commit 2fcf6220f15368286ed8d20b4eea42ed8de74c83
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Fri Dec 23 16:19:41 2016 -0500
wsd: log documentLoad call and duration
Change-Id: Ia1633ee6d57de5c13926a808f9adc2a85a9c839c
Reviewed-on: https://gerrit.libreoffice.org/32603
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 8d7ee2a..5dcd695 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -1118,9 +1118,11 @@ private:
_jailedUrl = uri;
_isDocPasswordProtected = false;
- LOG_DBG("Calling lokit::documentLoad.");
+ LOG_DBG("Calling lokit::documentLoad(" << uri << ").");
+ Timestamp timestamp;
_loKitDocument.reset(_loKit->documentLoad(uri.c_str()));
- LOG_DBG("Returned lokit::documentLoad.");
+ LOG_DBG("Returned lokit::documentLoad(" << uri << ") in " << (timestamp.elapsed() / 1000.) << "ms.");
+
std::unique_lock<std::mutex> l(_documentMutex);
lockLokDoc.swap(l);
@@ -1161,6 +1163,8 @@ private:
std::unique_lock<std::mutex> l(_documentMutex);
lockLokDoc.swap(l);
+ LOG_INF("Document with url [" << uri << "] already loaded. Need to create new view for session [" << sessionId << "].");
+
// Check if this document requires password
if (_isDocPasswordProtected)
{
commit ad2a9b90e4902e8320c7dea8df1f66b165dccab2
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Fri Dec 23 16:49:03 2016 -0500
wsd: lock when accessing session container
Change-Id: I3216036ee7ad4cf86b27dea35de97dae1baf67c7
Reviewed-on: https://gerrit.libreoffice.org/32605
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 32445bd..8d7ee2a 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -1264,20 +1264,29 @@ private:
std::string sessionId;
if (LOOLProtocol::parseNameValuePair(prefix, name, sessionId, '-') && name == "child")
{
+ std::unique_lock<std::mutex> lock(_mutex);
+
const auto it = _sessions.find(sessionId);
if (it != _sessions.end())
{
+ auto session = it->second;
+
static const std::string disconnect("disconnect");
if (size == disconnect.size() &&
strncmp(data, disconnect.data(), disconnect.size()) == 0)
{
LOG_DBG("Removing ChildSession " << sessionId);
- _oldSessionIds[it->second->getViewId()] = UserInfo({it->second->getViewUserId(), it->second->getViewUserName()});
+ _oldSessionIds[session->getViewId()] = UserInfo({session->getViewUserId(), session->getViewUserName()});
_sessions.erase(it);
+
+ // No longer needed, and allow session dtor to take it.
+ lock.unlock();
+ session.reset();
return true;
}
- auto session = it->second;
+ // No longer needed, and allow the handler to take it.
+ lock.unlock();
if (session)
{
return session->handleInput(data, size);
More information about the Libreoffice-commits
mailing list