[Kde-hardware-devel] Review Request 109418: Workaround races between Solid::Backends::UDisks2::DeviceManager and DeviceBackends
Dan Vrátil
dvratil at redhat.com
Mon Mar 11 15:19:54 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109418/#review28980
-----------------------------------------------------------
The patch looks fine in general.
Could you however look whether following solution would work? I think that cleaner approach would be if the backend would emit changed() when a new interface is added or removed. This way, if signals are first deliver to Manager (which therefore passes "outdated" Device to user) would not be a problem. Later, when the signals are delivered to the DeviceBackend, it would emit changed() and UI would be updated with the new values.
solid/solid/backends/udisks2/udisksdevicebackend.cpp
<http://git.reviewboard.kde.org/r/109418/#comment21681>
CS: put { on a new line
solid/solid/backends/udisks2/udisksmanager.cpp
<http://git.reviewboard.kde.org/r/109418/#comment21682>
CS: put { on a new line
solid/solid/backends/udisks2/udisksmanager.cpp
<http://git.reviewboard.kde.org/r/109418/#comment21679>
CS: put "return" on a new line
solid/solid/backends/udisks2/udisksmanager.cpp
<http://git.reviewboard.kde.org/r/109418/#comment21684>
CS: put "return" on a new line
solid/solid/backends/udisks2/udisksmanager.cpp
<http://git.reviewboard.kde.org/r/109418/#comment21685>
CS: put "return" on a new line
- Dan Vrátil
On March 11, 2013, 2:51 p.m., Alexander Mezin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109418/
> -----------------------------------------------------------
>
> (Updated March 11, 2013, 2:51 p.m.)
>
>
> Review request for Solid and Lukáš Tinkl.
>
>
> Description
> -------
>
> DeviceManager and DeviceBackends are subscribed to the same signals. DeviceManager's slots can be executed earlier than DeviceBackend's, so when deviceAdded signals are emitted by DeviceManager, DeviceBackend could contain non-updated data.
> Usually the problem appears with optical disks: device notifier shows inserted disks as generic storage volumes or shows wrong label.
>
> Possible workaround is forcing refresh of DeviceBackend's property cache before emitting deviceAdded signal. For optical disks drive's properties should also be updated, because OpticalDisc reads drive's properties
>
>
> This addresses bug 314778.
> http://bugs.kde.org/show_bug.cgi?id=314778
>
>
> Diffs
> -----
>
> solid/solid/backends/udisks2/udisksdevicebackend.h 829fa41e8700e68abbb27c4a326f35eaffc39898
> solid/solid/backends/udisks2/udisksdevicebackend.cpp 2a01b86690077df3738f740c50b29c46b40d4287
> solid/solid/backends/udisks2/udisksmanager.h fb929ce13d69aea462cc6b96149f284b991fe39c
> solid/solid/backends/udisks2/udisksmanager.cpp 71b9e3edebcf818f32567fb15bc391dccfbf7981
>
> Diff: http://git.reviewboard.kde.org/r/109418/diff/
>
>
> Testing
> -------
>
> Tested on KDE 4.10.1
>
>
> Thanks,
>
> Alexander Mezin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-hardware-devel/attachments/20130311/c6788f17/attachment-0001.html>
More information about the Kde-hardware-devel
mailing list