Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <kamm@incasoftware.de>2014-12-10 15:01:36 +0300
committerChristian Kamm <kamm@incasoftware.de>2014-12-10 15:01:36 +0300
commit53d5de685c9d9a73899f02f739f15fd25c3efce0 (patch)
treefdb4026b1cd50bfa319d3a980be585b3e54d1d3e /shell_integration
parente982790ad55374a85dced0b04a2cdb4f6807398b (diff)
parentf0ce8b8fd4f87eca0e5e1f33943448498c7eda5b (diff)
Merge remote-tracking branch 'origin/1.7'
Conflicts: src/gui/folder.cpp src/gui/folder.h src/libsync/networkjobs.cpp src/libsync/owncloudpropagator.h src/libsync/propagatedownload.cpp
Diffstat (limited to 'shell_integration')
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtil/RemotePathChecker.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/shell_integration/windows/OCShellExtensions/OCUtil/RemotePathChecker.cpp b/shell_integration/windows/OCShellExtensions/OCUtil/RemotePathChecker.cpp
index 7dcebff98..317f21572 100644
--- a/shell_integration/windows/OCShellExtensions/OCUtil/RemotePathChecker.cpp
+++ b/shell_integration/windows/OCShellExtensions/OCUtil/RemotePathChecker.cpp
@@ -127,8 +127,10 @@ void RemotePathChecker::workerThreadLoop()
}
else if (StringUtil::begins_with(response, wstring(L"UPDATE_VIEW"))) {
std::unique_lock<std::mutex> lock(_mutex);
+ auto cache = _cache; // Make a copy of the cache under the mutex
+ lock.unlock();
// Request a status for all the items in the cache.
- for (auto it = _cache.begin(); it != _cache.end(); ++it) {
+ for (auto it = cache.begin(); it != cache.end(); ++it) {
if (!socket.SendMsg(wstring(L"RETRIEVE_FILE_STATUS:" + it->first + L'\n').data())) {
break;
}
@@ -192,6 +194,7 @@ bool RemotePathChecker::IsMonitoredPath(const wchar_t* filePath, int* state)
}
_pending.push(filePath);
+ lock.unlock();
SetEvent(_newQueries);
return false;