Solve the problem that the dir watcher's dbus crashed because of deadlock.
This commit is contained in:
parent
a088d7cf86
commit
37b06c3421
|
@ -252,6 +252,7 @@ void DirWatcher::mountRemoveCallback(GVolumeMonitor *monitor, GMount *gmount, Di
|
|||
if (removedUri.startsWith("file:///")) {
|
||||
QString removedMountPoint = g_filename_from_uri(removedUri.toUtf8().constData(), nullptr, nullptr);
|
||||
pThis->m_blackListOfIndex.removeAll(removedMountPoint);
|
||||
locker.unlock();
|
||||
QStringList indexableDirList = pThis->currentIndexableDir();
|
||||
//卸载目录下存在已索引目录时,通知索引服务删除对应目录
|
||||
for (const QString &indexableDir : indexableDirList) {
|
||||
|
@ -260,6 +261,7 @@ void DirWatcher::mountRemoveCallback(GVolumeMonitor *monitor, GMount *gmount, Di
|
|||
}
|
||||
}
|
||||
//处理子卷情况
|
||||
locker.relock();
|
||||
for (auto t = pThis->m_infoOfSubvolume.constBegin(); t != pThis->m_infoOfSubvolume.constEnd(); t++) {
|
||||
if (removedMountPoint.startsWith(t.value() + "/")) {
|
||||
pThis->m_blackListOfIndex.removeAll(removedMountPoint.replace(t.value(), t.key()));
|
||||
|
|
Loading…
Reference in New Issue