davidedmundson added a comment.
Certainly doing all this inside updatePaintNode was wrong. So, concept wise ++ I don't understand the mutex, the main point of the patch is so that we only do network stuff on the main thread. During updatePaintNode the GUI thread is explicitly locked. > This patch changes it so the QNAM bits happen upon setSource The other option is to do all the resolving of the final QImage inside ::updatePolish() You get all the advantages of it happening only once per frame and all the advantages of keeping everything simple in the main thread. It's what we do in Plasma::IconItem Plasma::SvgItem and since we ported to that it made everything cleaner, faster and safer. REPOSITORY R169 Kirigami REVISION DETAIL https://phabricator.kde.org/D25185 To: apol, #kirigami, mart Cc: davidedmundson, anthonyfieroni, bcooksley, plasma-devel, fbampaloukas, GB_2, domson, dkardarakos, ngraham, apol, ahiemstra, mart, hein