[Development] Suggestion: how to know when object is scheduled for deletion
thiago.macieira at intel.com
Fri May 6 01:00:18 CEST 2016
On quinta-feira, 5 de maio de 2016 19:09:59 PDT Sean Donnelly wrote:
> In our application we maintain a UI Inventory via a named object cache.
> When an object is destroyed we remove it from our cache and when the name
> is changed we also update our cache.
> However when an object is scheduled for deletion via QObject::deleteLater()
> the object remains in our cache until it's actually deleted.
> I have two proposals:
> 1. Could deleteLater() send a signal so that we can update our cache
> immediately and not find that UI object which is about to be deleted.
The signal is destroyed() and is sent as soon the object actually gets
> 2. Could deleteLater() set a property to know the object is in an
> "about to be deleted state". That way our UI Inventory could be updated to
> ignore these objects.
That's a bad idea.
If you deleteLater() an object in the current thread, the object is really not
deleted and may still work fine. However, if you do that for an object in
another thread, the object may get deleted immediately, so you can't touch the
object anymore and you can't get to the property.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development