windowManager: Wait for X11 services using systemd
To do this, we now wait for the start/stop job to complete. We also have two targets in gnome-session to ensure that everything is working as expected. In order to start the services, we simply request the gnome-session-x11-services-ready.target unit, and wait for it to become available. To stop, we use the gnome-session-x11-services.target unit which should stop all services in a way that is entirely race free. This requires both gnome-session and gnome-settings-daemon changes to work (which are in the corresponding merge requests). https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895
This commit is contained in:

committed by
Benjamin Berg

parent
41d5b1455f
commit
01a927f388
@ -59,12 +59,21 @@ cairo_surface_t * shell_util_composite_capture_images (ClutterCapture *captures
|
||||
|
||||
void shell_util_check_cloexec_fds (void);
|
||||
|
||||
gboolean shell_util_start_systemd_unit (const char *unit,
|
||||
const char *mode,
|
||||
GError **error);
|
||||
gboolean shell_util_stop_systemd_unit (const char *unit,
|
||||
const char *mode,
|
||||
GError **error);
|
||||
void shell_util_start_systemd_unit (const char *unit,
|
||||
const char *mode,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean shell_util_start_systemd_unit_finish (GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void shell_util_stop_systemd_unit (const char *unit,
|
||||
const char *mode,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean shell_util_stop_systemd_unit_finish (GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void shell_util_sd_notify (void);
|
||||
|
||||
|
Reference in New Issue
Block a user