summaryrefslogtreecommitdiff
path: root/bufferevent_pair.c
diff options
context:
space:
mode:
authorOndřej Kuzník <ondra@mistotebe.net>2013-12-03 22:49:57 +0000
committerOndřej Kuzník <ondra@mistotebe.net>2013-12-03 23:39:13 +0000
commit61ee18b8b1d2ac0025955b3f949531c712fb7527 (patch)
tree78b005fea5cec5daebe28d38ad1b74a5f3b3b3af /bufferevent_pair.c
parent4ce242bd0087ed3f6d36c64d0d15094d8a6fc9fc (diff)
downloadlibevent-61ee18b8b1d2ac0025955b3f949531c712fb7527.tar.gz
Add an option to trigger bufferevent I/O callbacks
Diffstat (limited to 'bufferevent_pair.c')
-rw-r--r--bufferevent_pair.c13
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);