----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/109521/ -----------------------------------------------------------
Review request for Solid. Description ------- Current cache in UDisks2 has two problems: it isn't thread-safe and it introduces "backend objects" for objects that are backends themselves. Backends and interfaces created through Solid::Device are already shared in thread-safe way, and I think it's better to use this for caching. Also, if DevicePrivates will be cached, all Iface objects will be cached too. The only thing needed is QMap with strong pointers to keep DevicePrivates alive. This way DeviceBackends could be eliminated. Also, this cache could be easily used by another backends. The only problem is that objects like UDisks2::Device are sometimes explicitly created in UDisks2 backend code, but this could be fixed later. Seems that almost every time UDisks2::Device can be replaced with Solid::Device. Diffs ----- solid/solid/devicemanager.cpp a465169 solid/solid/devicemanager_p.h 0d8bd8e solid/solid/backends/udisks2/udisksmanager.h fb929ce solid/solid/ifaces/devicemanager.h 3488d0b Diff: http://git.reviewboard.kde.org/r/109521/diff/ Testing ------- After applying this patch to kdelibs 4.10.1, Solid::UDisks2::createDevice is called only once for every device. When the device is replaced, createDevice is called again. Tested on Dolphin using qDebug() :) Before patching, createDevice was called multiple times. Didn't see any regressions. Thanks, Alexander Mezin
_______________________________________________ Kde-hardware-devel mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-hardware-devel
