Set write low-watermarks on all bufferevents.

If we don't do this, then we never invoke the bufferevent write
callbacks until all the bufferevent's data is flushed.
This commit is contained in:
Nick Mathewson 2011-08-24 17:30:20 -04:00
parent f186e16241
commit dfcd3d9ce0
2 changed files with 10 additions and 0 deletions

5
changes/bug3805 Normal file
View File

@ -0,0 +1,5 @@
o Major bugfixes (bufferevents):
- Correctly notice when data has been written from a bufferevent
without flushing it completely. Bugfix on 0.2.3.1-alpha; fixes
bug 3805.

View File

@ -2947,6 +2947,11 @@ connection_configure_bufferevent_callbacks(connection_t *conn)
connection_handle_write_cb,
connection_handle_event_cb,
conn);
/* Set a fairly high write low-watermark so that we get the write callback
called whenever data is written to bring us under 128K. Leave the
high-watermark at 0.
*/
bufferevent_setwatermark(bufev, EV_WRITE, 128*1024, 0);
input = bufferevent_get_input(bufev);
output = bufferevent_get_output(bufev);