-
Ray Strode authored
<dsd> Jasper: can you explain the logic bug? just curious <Jasper> dsd, GCancellable is a way of cancelling an ongoing operation. <Jasper> dsd, so we start up a wait_async, which says "call this callback when the subprocess exits". And then when we get a SIGTERM, we fire off the cancellable, saying "no no, don't actually wait for to finish, let's just cancel that now" <Jasper> dsd, the callback is called, but wait_finish returns FALSE, meaning that the wait was cancelled. And then the callback says "oh, cool, we're done here" and clears the x_session object. <Jasper> dsd, I'd have to inspect closer to determine a proper fix should we still cancel the wait but not actually clear the object, so we wait synchronously in cleanup?) <Jasper> Depends on what else uses the cancellable. <dsd> ahh <dsd> got it <Jasper> dsd, the other thing that should fix it would be moving the g_clear_object above the "out" label here: https://git.gnome.org/browse/gdm/tree/daemon/gdm-x-session.c?h=gnome-3-16#n185 <Jasper> And doing that for all of session / bus / x subprocesses. <Jasper> Maybe that's the cleaner fix. Based on a patch by João Paulo Rechi Vita <jprvita@endlessm.com> [endlessm/eos-shell#4921] https://bugzilla.gnome.org/show_bug.cgi?id=752388
90a095e1