> On Tue, 27 Nov 2018 17:59:16 +0900
> 박성진 <[email protected]> wrote:

> > Hi Derek>> On 11/22/18 11:08 PM, Jeonghyun Kang wrote:

> > > What if it's a frame event that gets dropped and not an input event?  Or
> > > a resource destroy?
> > Instead of destroying a connection, destroying a resource seems to be more
> > reasonable.

> No, you cannot do that either. It too will cause the client and the
> server to get out of sync, which may eventually lead to a fatal
> protocol error.

> Really, the only thing you can do is either disconnect the client or
> halt its connection until it drains. Halting would require explicit
> support throughout the compositor to avoid sending any events, so
> disconnecting is the only thing that libwayland-server can do by itself.

Oops ! Actually I had to say "removing/re-creating resources like wl_touch interface
by updating capabilities via wl_seat capabilities event seems better than destroying
the client." As we have an electronic whiteboard products that can be drawn with 4 pens
simultaneouly in high resolution, killing an important app that draws trajectories of
each pen may not be the best option.

Anyway, There was a mis-understanding about dealing with EAGAIN in
wl_display_flush_clients(). All the queued events in connection.out buffer in a
wayland compositor can be flushed to clients as there will be no protocol .
By the way, trying to sending events when we meet EAGAIN error in wl_closure_send()/
wl_close_queue() will cause dropping events. Thus, it's quite intentional not to deal with
EAGAIN error in those functions.

Now we're going to do the further analysis about how many events are coming from
kernel/compositor and how fast the client can process the events.

 

Thank you so much and we'll update if there are any valuable points.

Sung-Jin

Attachment: No File Name 0
Description: Binary data

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to