why not flow control in wl_connection_flush?

jleivent jleivent at comcast.net
Wed Feb 21 16:08:02 UTC 2024


Not completely blocking makes sense for the compositor, but why not
block the client?

For the compositor, wouldn't a timeout in the sendmsg make sense?

On Wed, 21 Feb 2024 16:39:08 +0100
Olivier Fourdan <ofourdan at redhat.com> wrote:

> Hi,
> 
> On Wed, Feb 21, 2024 at 4:21 PM jleivent <jleivent at comcast.net> wrote:
> 
> > I've been looking into some of the issues about allowing the
> > socket's kernel buffer to run out of space, and was wondering why
> > not simply remove MSG_DONTWAIT from the sendmsg call in
> > wl_connection_flush?  That should implement flow control by having
> > the sender thread wait until the receiver has emptied the socket's
> > buffer sufficiently.
> >
> > It seems to me that using an unbounded buffer could cause memory
> > resource problems on whichever end was using that buffer.
> >
> > Was removing MSG_DONTWAIT from the sendmsg call considered and
> > abandoned for some reason?
> >  
> 
> See this thread [1] from 2012, it might give some hint on why
> MSG_DONTWAIT was added with commit  b26774da [2].
> 
> HTH
> Olivier
> 
> [1]
> https://lists.freedesktop.org/archives/wayland-devel/2012-February/002394.html
> [2] https://gitlab.freedesktop.org/wayland/wayland/-/commit/b26774da



More information about the wayland-devel mailing list