diff options
author | Christian Kamm <kamm@incasoftware.de> | 2014-12-10 15:01:36 +0300 |
---|---|---|
committer | Christian Kamm <kamm@incasoftware.de> | 2014-12-10 15:01:36 +0300 |
commit | 53d5de685c9d9a73899f02f739f15fd25c3efce0 (patch) | |
tree | fdb4026b1cd50bfa319d3a980be585b3e54d1d3e /shell_integration | |
parent | e982790ad55374a85dced0b04a2cdb4f6807398b (diff) | |
parent | f0ce8b8fd4f87eca0e5e1f33943448498c7eda5b (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.cpp | 5 |
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; |