diff options
author | Tor Lillqvist <tlillqvist@suse.com> | 2013-05-30 09:15:10 +0300 |
---|---|---|
committer | Tor Lillqvist <tlillqvist@suse.com> | 2013-05-30 09:56:27 +0300 |
commit | 259f3815cad69ef86007331bb231554c4cb8b4b1 (patch) | |
tree | 4b8aeb2b38c98dd7981bfa98569d6a0b68f157f9 /ucb | |
parent | 9c15384bc67e7878e8efefa422b4ab39d438413f (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.cxx | 3 |
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 ) |