diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2015-04-07 08:29:34 +0000 |
---|---|---|
committer | <> | 2015-04-13 18:52:43 +0000 |
commit | b2ccf8dd31d1457ae9f0ae270054117179220370 (patch) | |
tree | 4ccd4a16d5e9ef5869630ba624e822665a6e248c /sntp/libevent/bufferevent.c | |
parent | bdab5265fcbf3f472545073a23f8999749a9f2b9 (diff) | |
download | ntp-master.tar.gz |
Imported from /home/lorry/working-area/delta_ntp/ntp-4.2.8p2.tar.gz.HEADntp-4.2.8p2master
Diffstat (limited to 'sntp/libevent/bufferevent.c')
-rw-r--r-- | sntp/libevent/bufferevent.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sntp/libevent/bufferevent.c b/sntp/libevent/bufferevent.c index 588461a..d298d0b 100644 --- a/sntp/libevent/bufferevent.c +++ b/sntp/libevent/bufferevent.c @@ -599,7 +599,7 @@ bufferevent_setwatermark(struct bufferevent *bufev, short events, bufev_private->read_watermarks_cb, EVBUFFER_CB_ENABLED|EVBUFFER_CB_NODEFER); - if (evbuffer_get_length(bufev->input) > highmark) + if (evbuffer_get_length(bufev->input) >= highmark) bufferevent_wm_suspend_read(bufev); else if (evbuffer_get_length(bufev->input) < highmark) bufferevent_wm_unsuspend_read(bufev); @@ -615,25 +615,30 @@ bufferevent_setwatermark(struct bufferevent *bufev, short events, BEV_UNLOCK(bufev); } -void +int bufferevent_getwatermark(struct bufferevent *bufev, short events, size_t *lowmark, size_t *highmark) { - BEV_LOCK(bufev); if (events == EV_WRITE) { + BEV_LOCK(bufev); if (lowmark) *lowmark = bufev->wm_write.low; if (highmark) *highmark = bufev->wm_write.high; + BEV_UNLOCK(bufev); + return 0; } if (events == EV_READ) { + BEV_LOCK(bufev); if (lowmark) *lowmark = bufev->wm_read.low; if (highmark) *highmark = bufev->wm_read.high; + BEV_UNLOCK(bufev); + return 0; } - BEV_UNLOCK(bufev); + return -1; } int |