int bufferevent_decref_and_unlock_(struct bufferevent *bufev);
/** Internal: If callbacks are deferred and we have a read callback, schedule
- * a readcb. Otherwise just run the readcb. */
+ * a readcb. Otherwise just run the readcb. Ignores watermarks. */
void bufferevent_run_readcb_(struct bufferevent *bufev, int options);
/** Internal: If callbacks are deferred and we have a write callback, schedule
- * a writecb. Otherwise just run the writecb. */
+ * a writecb. Otherwise just run the writecb. Ignores watermarks. */
void bufferevent_run_writecb_(struct bufferevent *bufev, int options);
/** Internal: If callbacks are deferred and we have an eventcb, schedule
* it to run with events "what". Otherwise just run the eventcb.
/** Internal: Run or schedule (if deferred or options contain
* BEV_TRIG_DEFER_CALLBACKS) I/O callbacks specified in iotype.
- * Must already hold the bufev lock. */
+ * Must already hold the bufev lock. Honors watermarks unless
+ * BEV_TRIG_IGNORE_WATERMARKS is in options. */
void bufferevent_trigger_nolock_(struct bufferevent *bufev, short iotype, int options);
size_t *lowmark, size_t *highmark)
{
BEV_LOCK(bufev);
- if (events & EV_WRITE) {
+ if (events == EV_WRITE) {
if (lowmark)
*lowmark = bufev->wm_write.low;
if (highmark)
*highmark = bufev->wm_write.high;
}
- if (events & EV_READ) {
+ if (events == EV_READ) {
if (lowmark)
*lowmark = bufev->wm_read.low;
if (highmark)