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

Mario Rugiero <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #6 from Mario Rugiero <[email protected]> ---
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.
_______________________________________________
Xfce-bugs mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce-bugs

Reply via email to