ok nicm
On Sat, Sep 22, 2018 at 10:15:21AM +0200, Anton Lindqvist wrote: > On Fri, Sep 21, 2018 at 06:36:54PM -0700, Geoff Hill wrote: > > Hello tech, > > > > I noticed the event(3) manual pages don't mention the > > bufferevent_setwatermark(3) function and glosses over the details of > > watermarks, even though there's a few programs in userland that set both > > read and write watermarks. Looks like there was an effort in 2017 > > to add some documentation but it stalled. > > > > Here's a patch that adds the function synopsis and a brief description > > of how watermarks work separately for read and write. Mostly copied from > > the function declaration comments in event.h. > > > > ok? > > Few nits below, otherwise it looks good. Anyone else willing to ok? > > > > > Geoff Hill > > > > > > Index: event.3 > > =================================================================== > > RCS file: /cvs/src/lib/libevent/event.3,v > > retrieving revision 1.54 > > diff -u -p -u -r1.54 event.3 > > --- event.3 26 Jul 2018 12:50:04 -0000 1.54 > > +++ event.3 22 Sep 2018 01:26:56 -0000 > > @@ -68,6 +68,7 @@ > > .Nm bufferevent_enable , > > .Nm bufferevent_disable , > > .Nm bufferevent_settimeout , > > +.Nm bufferevent_setwatermark , > > .Nm EVBUFFER_INPUT , > > .Nm EVBUFFER_OUTPUT > > .Nd execute a function when a specific event occurs > > @@ -156,6 +157,8 @@ > > .Fn "bufferevent_disable" "struct bufferevent *bufev" "short event" > > .Ft void > > .Fn "bufferevent_settimeout" "struct bufferevent *bufev" "int > > timeout_read" "int timeout_write" > > +.Ft void > > +.Fn "bufferevent_setwatermark" "struct bufferevent *bufev" "short events" > > "size_t lowmark" "size_t highmark" > > .Ft "struct evbuffer *" > > .Fn "EVBUFFER_INPUT" "struct bufferevent *bufev" > > .Ft "struct evbuffer *" > > @@ -492,10 +495,35 @@ and > > When read enabled the bufferevent will try to read from the file > > descriptor and call the read callback. > > The write callback is executed > > -whenever the output buffer is drained below the write low watermark, > > +whenever the output buffer is drained below the write > > +.Fa "lowmark" , > > which is > > .Va 0 > > by default. > > +.Pp > > +The > > +.Fn bufferevent_setwatermark > > +function can set the the low and high watermarks > > One `the' is enough. > > > +for read and write events. > > +.Fa "events" > > +can be > > +.Va EV_READ , > > +.Va EV_WRITE > > +or both. > > +When used with > > +.Va EV_READ , > > +a bufferevent does not invoke the user read callback > > +unless there is at least > > +.Fa "lowmark" > > +data in the buffer. > > +If the read buffer is beyond > > +.Fa "highmark" , > > +the bufferevent stops reading from the file descriptor. > > +When used with > > +.Va EV_WRITE, > > Missing space between EV_WRITE and comma. > > > +the user write callback is invoked whenever the buffered data > > +falls below > > +.Fa "lowmark" . > > .Pp > > The > > .Fn bufferevent_write