summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tlillqvist@suse.com>2013-05-30 09:15:10 +0300
committerPetr Mladek <pmladek@suse.cz>2013-05-31 13:44:43 +0200
commit271ff50bb7dab6eac62031a09b1955df04fb68f5 (patch)
tree31c5cbd9ccfbac8a225c3cff0d14874fa6c860aa
parentea8dd3a9a0b9d5d3d9fd888972d83dc003dc0001 (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.
-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 )