diff options
author | Ondřej Kuzník <ondra@mistotebe.net> | 2013-12-03 22:49:57 +0000 |
---|---|---|
committer | Ondřej Kuzník <ondra@mistotebe.net> | 2013-12-03 23:39:13 +0000 |
commit | 61ee18b8b1d2ac0025955b3f949531c712fb7527 (patch) | |
tree | 78b005fea5cec5daebe28d38ad1b74a5f3b3b3af /bufferevent_pair.c | |
parent | 4ce242bd0087ed3f6d36c64d0d15094d8a6fc9fc (diff) | |
download | libevent-61ee18b8b1d2ac0025955b3f949531c712fb7527.tar.gz |
Add an option to trigger bufferevent I/O callbacks
Diffstat (limited to 'bufferevent_pair.c')
-rw-r--r-- | bufferevent_pair.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/bufferevent_pair.c b/bufferevent_pair.c index 4d467260..eb3da3e3 100644 --- a/bufferevent_pair.c +++ b/bufferevent_pair.c @@ -151,7 +151,7 @@ static void be_pair_transfer(struct bufferevent *src, struct bufferevent *dst, int ignore_wm) { - size_t src_size, dst_size; + size_t dst_size; size_t n; evbuffer_unfreeze(src->output, 1); @@ -182,15 +182,8 @@ be_pair_transfer(struct bufferevent *src, struct bufferevent *dst, BEV_DEL_GENERIC_WRITE_TIMEOUT(dst); } - src_size = evbuffer_get_length(src->output); - dst_size = evbuffer_get_length(dst->input); - - if (dst_size >= dst->wm_read.low) { - bufferevent_run_readcb_(dst); - } - if (src_size <= src->wm_write.low) { - bufferevent_run_writecb_(src); - } + bufferevent_trigger_nolock_(dst, EV_READ, 0); + bufferevent_trigger_nolock_(src, EV_WRITE, 0); done: evbuffer_freeze(src->output, 1); evbuffer_freeze(dst->input, 0); |