[Development] Should QFileSystemWatcher be thread-safe? (Qt 5.8.0)

Sergio Martins sergio.martins at kdab.com
Mon Oct 2 12:12:35 CEST 2017


On 2017-09-30 13:54, René J. V.  Bertin wrote:

>> Apart from this I'd suspect you will still get the SEGV if you do not 
>> block
>> - even if the frequency changes. This points to you using some kind of
>> pointer that is not properly controlled (e.g. sending a signal to a 
>> QFSW
>> that is already deleted).
> 
> I think it was false alarm. I used a lambda expression as slot and must 
> have
> misunderstood why the other lambdas in the same function can use '[&]' 
> without
> ending up with invalid references in the body. I only need the watcher
> instance,
> so I'm just passing the reference to it explicitly. No more crashing 
> and less
> ambiguous anyway :)

You were probably capturing a local variable by reference inside the 
lambda, which then went out of scope.

See 
https://github.com/KDE/clazy/blob/master/src/checks/level0/README-lambda-in-connect.md 
for how to catch it at compile time.


Regards,
-- 
Sérgio Martins | sergio.martins at kdab.com | Senior Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - The Qt, C++ and OpenGL Experts



More information about the Development mailing list