aboutsummaryrefslogtreecommitdiff
path: root/src/core/kconfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/kconfig.cpp')
-rw-r--r--src/core/kconfig.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/kconfig.cpp b/src/core/kconfig.cpp
index 782e9714..1da816fa 100644
--- a/src/core/kconfig.cpp
+++ b/src/core/kconfig.cpp
@@ -440,6 +440,12 @@ bool KConfig::sync()
QExplicitlySharedDataPointer<KConfigBackend> tmp = KConfigBackend::create(d->sGlobalFileName);
if (d->configState == ReadWrite && !tmp->lock()) {
qWarning() << "couldn't lock global file";
+
+ //unlock the local config if we're returning early
+ if (d->mBackend->isLocked()) {
+ d->mBackend->unlock();
+ }
+
d->bDirty = true;
return false;
}