compositor: add weston_client_start()
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Wed, 27 Aug 2014 09:03:38 +0000 (12:03 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 28 Aug 2014 07:15:10 +0000 (10:15 +0300)
commit9c1ac7b220455f6a58a51517b7bc8bee9364a47c
tree015e15fec6cc2f86996b9ea0adebe562a48954b9
parent8ffd38bedbf2790080d7bfe43445198d59ccaf72
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>
src/compositor.c
src/compositor.h