https://bugs.freedesktop.org/show_bug.cgi?id=82957
--- Comment #3 from Derek Foreman <[email protected]> --- Someone on irc (rawoul) explained to me that the destroy listener is actually required because if it doesn't set client = NULL then something else might try to free it later. This apparently can lead to a segfault on shutdown - I've not tried to reproduce this issue myself. I've also tried removing the sigchld handler and pushing all its functionality into the destroy listener - that fails in other interesting ways: - p->cleanup is always called, even if null. (need a no-op handler or to relax that constraint) - if the destroy handler tries to add the destroy listener to the newly launched client's destroy notifiers it'll screw up the current pass through the old process's destroy handler list. - the process struct (shell->child.process) is having its pid set to 0 in the destroy handler - this results in an incorrect log message when weston's sigchld handler can't find the dead process' pid. I've tried deferring the call to launch_desktop_shell_process() with wl_event_loop_add_idle() but I don't know how to convince myself that the idle timer can't ever launch the new process before compositor.c processes the sigchld. (which would again result in a spurious unknown process error in the log) -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Wayland-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-bugs
