summaryrefslogtreecommitdiff
path: root/ucb
diff options
context:
space:
mode:
authorTor Lillqvist <tlillqvist@suse.com>2013-05-30 09:15:10 +0300
committerTor Lillqvist <tlillqvist@suse.com>2013-05-30 09:56:27 +0300
commit259f3815cad69ef86007331bb231554c4cb8b4b1 (patch)
tree4b8aeb2b38c98dd7981bfa98569d6a0b68f157f9 /ucb
parent9c15384bc67e7878e8efefa422b4ab39d438413f (diff)
Unfortunately mstahl's fix for the webdav-neon deadlock was not sufficient
Even if stopTicker() now by itself is OK, it is called from removeLock(), which already has acquired the same mutex that stopTicker() now carefully makes sure to not hold when calling join() on the ticker thread. (Remember, our mutexes are recursive.) So we still easily get a deadlock. So for now, just don't bother with the micro-optimisation of stopping the ticker thread if there are no WebDAV locks to refresh.
Diffstat (limited to 'ucb')
-rw-r--r--ucb/source/ucp/webdav-neon/NeonLockStore.cxx3
1 files changed, 0 insertions, 3 deletions
diff --git a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
index e5f204fbe0ec..74da3f3fb768 100644
--- a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
+++ b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
@@ -207,9 +207,6 @@ void NeonLockStore::removeLock( NeonLock * pLock )
m_aLockInfoMap.erase( pLock );
ne_lockstore_remove( m_pNeonLockStore, pLock );
-
- if ( m_aLockInfoMap.empty() )
- stopTicker();
}
void NeonLockStore::unlockLock( NeonLock * pLock )