Review Request: Avoid calling KWallet::openWallet several times

Daniele Elmo Domenichelli daniele.domenichelli at gmail.com
Thu Nov 22 21:22:35 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107426/
-----------------------------------------------------------

(Updated Nov. 22, 2012, 9:22 p.m.)


Review request for Telepathy and David Edmundson.


Changes
-------

As discussed with George, this class is not really thread safe, and telepathy is single-threaded in general (every dbus operation uses the main event loop) so I'm just using a bool


Summary (updated)
-----------------

Avoid calling KWallet::openWallet several times


Description
-------

In order to avoid the problem when kwallet is closed while kcm accounts is open, we introduced a bug: if more than one openWallet call is done at the same time, we reset the scoped pointer with a new wallet, the old wallet is deleted and therefore the signal is never emitted.
This patch uses a QMutex to avoid trying the wallet several times if it is already being opened.
In order to catch the signal from the KWallet, I needed a QObject, and since the KTp::WalletInterface is using K_GLOBAL_STATIC, I used the private class instead.


This addresses bug 310505.
    http://bugs.kde.org/show_bug.cgi?id=310505


Diffs (updated)
-----

  KTp/wallet-interface.cpp 428c02e48365c09fb579a26a73ec01efac029864 

Diff: http://git.reviewboard.kde.org/r/107426/diff/


Testing
-------

Disconnected all accounts, closed the wallet and reconnected all accounts several times (accepting and canceling the kwallet dialog)

Tried to randomly connect/disconnect accounts from kcm while randomly close kwallet and accepting/cancelling kwallet dialog.


Thanks,

Daniele Elmo Domenichelli

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20121122/d6cddabd/attachment-0001.html>


More information about the KDE-Telepathy mailing list