[Xfce-bugs] [Bug 15623] AppFinder opens two or more windows at the same time despite having activated single windows in preferences

bugzilla-daemon at xfce.org bugzilla-daemon at xfce.org
Fri Jul 5 10:04:36 CEST 2019


https://bugzilla.xfce.org/show_bug.cgi?id=15623

Mario Rugiero <mrugiero at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mrugiero at gmail.com

--- Comment #6 from Mario Rugiero <mrugiero at gmail.com> ---
I've been looking at this and other related problems the last few days.
I've got a fix for a part of it, for which I'll probably be sending a patch
tomorrow or the day after.
The fixed part was as follows:
1. For some reason we have the well-known name owned by someone, but this
someone doesn't answer connections.
2. We have timeouts, making startup slow.
3. After the timeouts, we try to take ownership of the name, which is probably
reasonable.
4. We make a mistake. We use g_dbus_own_name and take its return value as
meaningful proof that we're now the owner, when it always returns non-zero and
is asynchronous. We have no idea if we own the name until after we run
gtk_main_loop.
5. We think we own the name, and thus are the server, so we must not die on
close.
6. Rinse and repeat.

The fix consists in using explicit messages to get ownership (or have our
request rejected) synchronously.
>From what I've read on mailing lists, GDBus sets the policy of async requests
being the one true way, so no helpers.
I also set it so no queue happens, since that follows better with the actual
flow of the current implementation.

I'm rethinking the flow to see if I can understand and avoid the causes of the
server freeze in the first place.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Xfce-bugs mailing list