summaryrefslogtreecommitdiff
path: root/src/compositor.h
diff options
context:
space:
mode:
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-08-27 12:03:38 +0300
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-08-28 10:15:10 +0300
commit9c1ac7b220455f6a58a51517b7bc8bee9364a47c (patch)
tree015e15fec6cc2f86996b9ea0adebe562a48954b9 /src/compositor.h
parent8ffd38bedbf2790080d7bfe43445198d59ccaf72 (diff)
downloadweston-9c1ac7b220455f6a58a51517b7bc8bee9364a47c.tar.gz
compositor: add weston_client_start()
weston_client_start() is a new wrapper around weston_client_launch(), that does the process tracking on its own, and logs the process exit status. When users of weston_client_start() want to know when the process exits, they should hook into the wl_client destroy signal. This works for cases where the client is not expected to disconnect without exiting. As wl_client destructor and the sigchld handler run in arbitary order, it is usually difficult for users to maintain both struct weston_process and a struct wl_client pointer. You would need to wait for both destructor and handler to have run, before attempting to respawn the client. This new function relieves the caller from the burden of maintaining the struct weston_process, assuming the caller is only interested in client disconnects. Cc: Boyan Ding <stu_dby@126.com> Cc: Derek Foreman <derekf@osg.samsung.com> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Diffstat (limited to 'src/compositor.h')
-rw-r--r--src/compositor.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compositor.h b/src/compositor.h
index c0fc0a6e..24a97681 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -1345,6 +1345,9 @@ weston_client_launch(struct weston_compositor *compositor,
const char *path,
weston_process_cleanup_func_t cleanup);
+struct wl_client *
+weston_client_start(struct weston_compositor *compositor, const char *path);
+
void
weston_watch_process(struct weston_process *process);