[PATCH weston] systemd: take over a socket created by systemd in case of

Friedrich, Eugen (ADITG/SW1) efriedrich at de.adit-jv.com
Wed Mar 30 09:31:04 UTC 2016


Systemd provides a feature of socket-based activation, details in [1]
This commit adds an implementation to check if socket was provided by systemd
and adds this as an additional socket to wayland display.
This is usefull for early rendering use-cases where weston and early-rendering-application
can be started parallel.

[1] https://www.freedesktop.org/software/systemd/man/systemd.socket.html

Signed-off-by: Eugen Friedrich <efriedrich at de.adit-jv.com>
---
src/systemd-notify.c |   12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/src/systemd-notify.c b/src/systemd-notify.c
index e61db0f..a921241 100644
--- a/src/systemd-notify.c
+++ b/src/systemd-notify.c
@@ -79,6 +79,7 @@ module_init(struct weston_compositor *compositor,
               struct wl_event_loop *loop;
               long watchdog_time_conv;
               struct systemd_notifier *notifier;
+             int fd;
                notifier = zalloc(sizeof *notifier);
               if (notifier == NULL)
@@ -89,6 +90,17 @@ module_init(struct weston_compositor *compositor,
               wl_signal_add(&compositor->destroy_signal,
                                     &notifier->compositor_destroy_listener);
+             /*take additional display socket if provided by systemd*/
+             if (1 == sd_listen_fds(0)) {
+                             fd = SD_LISTEN_FDS_START + 0;
+                             weston_log("info:add socket for weston created by systemd\n");
+
+                             if (wl_display_add_socket_fd(compositor->wl_display, fd)) {
+                                             weston_log("wl_display_add_socket_fd failed\n");
+                                             return -1;
+                             }
+             }
+
               sd_notify(0, "READY=1");
                /* 'WATCHDOG_USEC' is environment variable that is set
--
1.7.9.5

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20160330/7c8506ec/attachment-0001.html>


More information about the wayland-devel mailing list