Review Request: Use D-Bus to lock sessions and move "session locked" dialog (from KDevelop's main()) to kdevplatform

Ivan Shapovalov intelfx100 at gmail.com
Thu Jan 10 05:52:55 UTC 2013



> On Jan. 9, 2013, 10:38 p.m., Milian Wolff wrote:
> > shell/sessioncontroller.cpp, line 914
> > <http://git.reviewboard.kde.org/r/105917/diff/5/?file=87030#file87030line914>
> >
> >     this is wrong, no?
> >     
> >     just encountered this code while refactoring it.
> >     
> >     - we only reach this code path if we want to lock the session
> >     - if we fail to "force remove" the lock file and cannot acquire the lockfile afterwards, something bad happened
> >     
> >     I'll turn this into an assertion, i.e.: ensure that after attempRelock the lockfile was properly acquired

The actual wrong is in my next commit, 61fd1270da44aebb1a4fe1a1ce4a4292b99e5545... Without it, the overall status of locking (LockSessionState::operator bool()) is determined by both lock-file status (LockSessionState::lockResult) and D-Bus status (LockSessionState::success), which is exactly what is needed.

Please, take a look at my github's master (git://github.com/intelfx/kdevplatform.git), revision 339e1c0 - I attempted to fix it once again :P

And about the assertion: IMO it isn't a right thing. If this happens, it means that we're encountering a problem in external environment (file system, permissions, or a user who decided to take a look at the lock-file and opened it in vim, etc.) and not an internal logic failure. Thus no sense in crashing application (and doing nothing in Release, btw)...
What do you think?


- Ivan


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


On Sept. 25, 2012, 10:19 a.m., Ivan Shapovalov wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105917/
> -----------------------------------------------------------
> 
> (Updated Sept. 25, 2012, 10:19 a.m.)
> 
> 
> Review request for KDevelop.
> 
> 
> Description
> -------
> 
> 1: Use D-Bus instead of lock-files to lock kdevplatform sessions.
> 
> 2: Moved the lockfile remove dialog which currently resides in KDevelop's main() - and which is usable only when the session name is explicitly given to the application - to kdevplatform's SessionController, adjusting the dialog for "lockfile -> dbus" changes.
>     
> This allows to get rid of nasty non-informative error messages about a session being already used and replace them with code that does the following things:
> 1) Attempts a DBus call to make a running instance visible;
> 2) If it didn't succeed, shows a dialog window asking permission to retry, show session chooser dialog or quit;
> 3) Repeats the entire procedure if a newly-picked session is locked too.
>     
> This code is also used when one picks a session from "Sessions" menu, so a nasty error message has also been removed also from there.
> 
> Related change to KDevelop is here: https://git.reviewboard.kde.org/r/105918/ .
> 
> 
> Diffs
> -----
> 
>   shell/core.cpp 206d48d 
>   shell/sessioncontroller.h 551894d 
>   shell/sessioncontroller.cpp c9fac67 
> 
> Diff: http://git.reviewboard.kde.org/r/105917/diff/
> 
> 
> Testing
> -------
> 
> Existing unit-tests + manual UI testing.
> 
> 
> Thanks,
> 
> Ivan Shapovalov
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130110/51b1c6cb/attachment-0001.html>


More information about the KDevelop-devel mailing list