summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bufferevent.c14
-rw-r--r--include/event2/bufferevent.h12
2 files changed, 26 insertions, 0 deletions
diff --git a/bufferevent.c b/bufferevent.c
index 75ff9b72..8d3f7cba 100644
--- a/bufferevent.c
+++ b/bufferevent.c
@@ -825,3 +825,17 @@ _bufferevent_add_event(struct event *ev, const struct timeval *tv)
else
return event_add(ev, tv);
}
+
+/* For use by user programs only; internally, we should be calling
+ either _bufferevent_incref_and_lock(), or BEV_LOCK. */
+void
+bufferevent_lock(struct bufferevent *bev)
+{
+ _bufferevent_incref_and_lock(bev);
+}
+
+void
+bufferevent_unlock(struct bufferevent *bev)
+{
+ _bufferevent_decref_and_unlock(bev);
+}
diff --git a/include/event2/bufferevent.h b/include/event2/bufferevent.h
index 02cabe67..55e44f9c 100644
--- a/include/event2/bufferevent.h
+++ b/include/event2/bufferevent.h
@@ -424,6 +424,18 @@ void bufferevent_setwatermark(struct bufferevent *bufev, short events,
size_t lowmark, size_t highmark);
/**
+ Acquire the lock on a bufferevent. Has no effect if locking was not
+ enabled with BEV_OPT_THREADSAFE.
+ */
+void bufferevent_lock(struct bufferevent *bufev);
+
+/**
+ Release the lock on a bufferevent. Has no effect if locking was not
+ enabled with BEV_OPT_THREADSAFE.
+ */
+void bufferevent_unlock(struct bufferevent *bufev);
+
+/**
Flags that can be passed into filters to let them know how to
deal with the incoming data.
*/