diff --git a/buffer.c b/buffer.c index 16347973..b48d5d4d 100644 --- a/buffer.c +++ b/buffer.c @@ -370,6 +370,8 @@ evbuffer_deferred_callback(struct deferred_cb *cb, void *arg) { struct evbuffer *buffer = arg; + /* XXXX It would be better to run these callbacks without holding the + * lock */ EVBUFFER_LOCK(buffer, EVTHREAD_WRITE); evbuffer_run_callbacks(buffer); _evbuffer_decref_and_unlock(buffer); diff --git a/bufferevent.c b/bufferevent.c index 7f3c240a..21a5e87d 100644 --- a/bufferevent.c +++ b/bufferevent.c @@ -119,6 +119,8 @@ bufferevent_run_deferred_callbacks(struct deferred_cb *_, void *arg) struct bufferevent_private *bufev_private = arg; struct bufferevent *bufev = &bufev_private->bev; + /* XXXX It would be better to run these without holding the + * bufferevent lock */ BEV_LOCK(bufev); if (bufev_private->readcb_pending && bufev->readcb) { bufev_private->readcb_pending = 0;