<HTML><HEAD>
<META content=IE=5 http-equiv=X-UA-Compatible>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE id=mysingle_style type=text/css>.search-word {
        BACKGROUND-COLOR: #ffee94
}
P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: 맑은 고딕, arial; MARGIN-TOP: 5px
}
TD {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: 맑은 고딕, arial; MARGIN-TOP: 5px
}
LI {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: 맑은 고딕, arial; MARGIN-TOP: 5px
}
BODY {
        FONT-SIZE: 10pt; FONT-FAMILY: 맑은 고딕, arial; MARGIN: 10px; LINE-HEIGHT: 1.4
}
</STYLE>

<STYLE id=knox_style type=text/css>P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: 맑은 고딕, arial; MARGIN-TOP: 5px
}
</STYLE>

<META name=GENERATOR content=ActiveSquare></HEAD>
<BODY style="OVERFLOW: auto">
<P></P>
<P>> On Tue, 27 Nov 2018 17:59:16 +0900<BR>> 박성진 <sj76.park@samsung.com> wrote:<BR><BR>> > Hi Derek>> On 11/22/18 11:08 PM, Jeonghyun Kang wrote:<BR><BR>> > > What if it's a frame event that gets dropped and not an input event?  Or<BR>> > > a resource destroy?<BR>> > Instead of destroying a connection, destroying a resource seems to be more<BR>> > reasonable.<BR><BR>> No, you cannot do that either. It too will cause the client and the<BR>> server to get out of sync, which may eventually lead to a fatal<BR>> protocol error.<BR><BR>> Really, the only thing you can do is either disconnect the client or<BR>> halt its connection until it drains. Halting would require explicit<BR>> support throughout the compositor to avoid sending any events, so<BR>> disconnecting is the only thing that libwayland-server can do by itself.<BR></P>
<P>Oops ! Actually I had to say "removing/re-creating resources like wl_touch interface<BR>by updating capabilities via wl_seat capabilities event seems better than destroying<BR>the client." As we have an electronic whiteboard products that can be drawn with 4 pens<BR>simultaneouly in high resolution, killing an important app that draws trajectories of<BR>each pen may not be the best option.<BR><BR>Anyway, There was a mis-understanding about dealing with EAGAIN in<BR>wl_display_flush_clients(). All the queued events in connection.out buffer in a<BR>wayland compositor can be flushed to clients as there will be no protocol .<BR>By the way, trying to sending events when we meet EAGAIN error in wl_closure_send()/<BR>wl_close_queue() will cause dropping events. Thus, it's quite intentional not to deal with<BR>EAGAIN error in those functions.<BR><BR>Now we're going to do the further analysis about how many events are coming from<BR>kernel/compositor and how fast the client can process the events.</P>
<P> </P>
<P>Thank you so much and we'll update if there are any valuable points.</P>
<P>Sung-Jin</P></BODY></HTML><img src='http://ext.samsung.net/mail/ext/v1/external/status/update?userid=sj76.park&do=bWFpbElEPTIwMTgxMTI4MDA0OTU0ZXBjbXMxcDVlYjkzODdkODNmOGUyZjk0YWY5ZjlmNDM3ZDQwZDEwNCZyZWNpcGllbnRBZGRyZXNzPXdheWxhbmQtZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn' border=0 width=0 height=0 style='display:none'>