summaryrefslogtreecommitdiffstats
path: root/filepropertiesdialog.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-08-28 09:32:30 +0200
committerArno <am@disconnect.de>2013-08-28 09:32:30 +0200
commit1ee897fbb51cb431cba7690076a29a3ca2ddc1a7 (patch)
tree127c2ff9ff239e672159d44aa161e99ec222898c /filepropertiesdialog.cpp
parentdbfc4f7bf395bf20aa21058372d47d17d040f553 (diff)
downloadSheMov-1ee897fbb51cb431cba7690076a29a3ca2ddc1a7.tar.gz
SheMov-1ee897fbb51cb431cba7690076a29a3ca2ddc1a7.tar.bz2
SheMov-1ee897fbb51cb431cba7690076a29a3ca2ddc1a7.zip
Fix crashes in SmDirWatcher (again)
This reverts commit dbfc4f7bf395bf20aa21058372d47d17d040f553. It was totally and utterly wrong. This is what really happened, hopefully: Since a Semaphore can guard more than a single resource, it could happen that both mSemUsed and mSemFree were available at the same time. So it could happen that both the watcher and the datacollector tried to access the dataqueue at the same time. Since ->dequeue() is not atomic, this could throw of the internal iterator from the QList, resulting in a crash. The solution is simple: Guard it with a shared Mutex.
Diffstat (limited to 'filepropertiesdialog.cpp')
0 files changed, 0 insertions, 0 deletions