Why do I require a `wl_event_loop_add_idle` in creating a fork-exec wayland client
Markus Ongyerth
wl at ongy.net
Fri Aug 3 03:46:03 UTC 2018
On 2018/7月/11 09:42, Sichem Zhou wrote:
> Hi All,
>
> I have a question related to the wl_client creation in the compositor. I
> followed these step like weston did:
>
> 1. create socketpair.
> 2. fork a process and close `socket[0]` in child, close `socket[1]` in in
> parent process.
> 3. set the `WAYLAND_SOCKET` to `socket[1]`.
> 4. exec the program.
You seem to be missing a few steps here. They probably exist in your code, but
it suggests to me that you might cause this somewhere else.
I have code [1] that doesn't rely on any idle dispatching and worked fine so
far.
This includes a single step in the compositor:
3. Set up client with wl_display_create_client
Just lookking at my code, I see and remember that I'm using AF_UNIX and
SOCK_STREAM arguments for the socketpair, which ones do you pass to yours?
[1] https://github.com/waymonad/waymonad/blob/master/src/Waymonad/Actions/Spawn.hs#L181
ongy
>
> I found out if I do this directly both compositor and client will stuck in
> the eventloop. It seems the compositor is stuck in the
> `wl_display_flush_clients` and client is stuck in `wl_event_queue_dispatch`
> and internally stuck in the epoll. So I think both compositor and client
> were waiting each other for some update.
>
> Then I found out that I need to pack the code in a
> `wl_event_loop_idle_func_t` and add it to the event_loop. But I am couldn't
> figure out why did the compositor stuck in the first place and why did the
> wl_event_loop_add_idle helped.
>
> Thanks very much.
> SZ
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180803/889eaf6b/attachment.sig>
More information about the wayland-devel
mailing list