[Development] leak in QMetaObject?
Thomas Senyk
thomas.senyk at pelagicore.com
Thu Jul 14 16:33:26 CEST 2016
Hi,
I lately wanted to validate that a connecting&disconnecting to a lambda
will not leak the lambda object .. and found that more then that is leaked.
Here is my example: http://paste.ofcode.org/36dmWCT8ddF6Zaqb9csKZNv
After the 10million connections are executed and disconnected (all of
them a successful), I assume a drop in memory consumption and more
importantly a drop of cpu load to close to 0%.
I see neither one nor the other. I see continues 100% consume with no
memory consumption drop what so ever.
I did a quick peak into QMetaObject::activate and it seems no clean up
happened .. the list returned in
list = &connectionLists->at(signal_index);
(line #3660 in 5.6 checkout from today)
seems rather long! (10million?)
However all "if (!c->receiver)" shows no receiver and therefor will
continue right away .. at least
Is this expected? A bug? ... I'm happy to fill a bug report, I just
wanted to get some feedback, maybe I'm just doing something wrong
Some background:
I wanted to check if a single-shot-connection (connection to a signal
and disconnect at first execute, using a lambda as slot) would be a
feasible thing to do.
Greets
Thomas
More information about the Development
mailing list