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
