I have no idea what you mean.
If you have an object allocated in the stack, its destructor will run and its memory will be released.
An object can internally use heap allocation, so very often is it unnecessary to do it manually, e.g. when using a container such as a list or vector.
Manually allocated memory needs to be released, either manually or by letting the pointer be handled by a smart pointer or by other management mechanisms, e.g. QObjects' parent/child tree.
And good that you have changed the code to connect the thread's signal before starting the thread.
Cheers,
_
Bookmarks