History log of /libevent-2.1.12/bufferevent.c (Results 1 – 25 of 97)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release-2.2.1-alpha, release-2.1.12-stable, release-2.1.11-stable, release-2.1.10-stable
# bb0f8fe7 16-Mar-2019 Azat Khuzhin <[email protected]>

Fix leaks in error path of the bufferevent_init_common_()

(cherry picked from commit 6995b9a864c16bcb84ea0f7a2cf856143020316b)


Revision tags: release-2.1.9-beta, release-2.0.23-beta
# 22609d66 19-Nov-2018 Azat Khuzhin <[email protected]>

bufferevent: add debug messages when .setfd/.getfd/.enable/.disable failed

(cherry picked from commit 57765b23c81a9150ca0f77ed5f4d9b64a43cf30d)


# 74517b2a 30-Nov-2018 Azat Khuzhin <[email protected]>

Use BEV_UPCASE() everywhere

Done with coccinelle and manual line rewrap:
$ cat > BEV_UPCAST.cocci
@@
expression field_;
expression var;
@@

- EVUTIL_UPCAST(var, struct bufferevent_privat

Use BEV_UPCASE() everywhere

Done with coccinelle and manual line rewrap:
$ cat > BEV_UPCAST.cocci
@@
expression field_;
expression var;
@@

- EVUTIL_UPCAST(var, struct bufferevent_private, field_)
+ BEV_UPCAST(var)

$ spatch --sp-file BEV_UPCASE.cocci --in-place bufferevent*.c > /dev/null

(cherry picked from commit 7bcf576b396b22f218074c446691526a3ce509a6)

show more ...


# 3f692fff 17-Oct-2018 Azat Khuzhin <[email protected]>

Merge branch 'be-wm-overrun-v2'

* be-wm-overrun-v2:
Fix hangs due to watermarks overruns in bufferevents implementations
test: cover watermarks (with some corner cases) in ssl bufferevent

Fixes

Merge branch 'be-wm-overrun-v2'

* be-wm-overrun-v2:
Fix hangs due to watermarks overruns in bufferevents implementations
test: cover watermarks (with some corner cases) in ssl bufferevent

Fixes: #690
(cherry picked from commit 878bb2d3b9484b27594308da1d0d6a7c9bdf6647)

show more ...


Revision tags: release-2.1.8-stable, release-2.1.7-rc
# 75216643 16-Sep-2016 Seven <[email protected]>

be: just a simple mistake, reinclude the <errno.h>

include the <errno.h> twice.


Revision tags: release-2.1.6-beta
# 3c1f58f5 05-Nov-2015 Azat Khuzhin <[email protected]>

be: introduce bufferevent_generic_adj_existing_timeouts_()

And use it in openssl/sock layers to avoid copy-pasting it's variants.


# a96b73b9 05-Nov-2015 Azat Khuzhin <[email protected]>

be: add_event: use evutil_timerisset()


# 1ed6718d 06-May-2015 Mark Ellzey <[email protected]>

expose bufferevent_incref/decref (with fewer modifications)


Revision tags: release-2.0.22-stable, release-1.4.15-stable, release-2.1.5-beta
# b34e4ac3 12-Sep-2014 ufo2243 <[email protected]>

[Bugfix] fix bufferevent setwatermark suspend_read


# a21e5108 12-Sep-2014 ufo2243 <[email protected]>

make bufferevent_getwatermark api more robust


Revision tags: release-2.1.4-alpha
# a3172a41 24-Dec-2013 Nick Mathewson <[email protected]>

Minor optimizations on bufferevent_trigger options

By making BEV_TRIG_DEFER_CALLBACKS equal to BEV_OPT_DEFER_CALLBACKS,
and BEV_TRIG_IGNORE_WATERMARKS disjoint from BEV_OPT_*, we can save a
few oper

Minor optimizations on bufferevent_trigger options

By making BEV_TRIG_DEFER_CALLBACKS equal to BEV_OPT_DEFER_CALLBACKS,
and BEV_TRIG_IGNORE_WATERMARKS disjoint from BEV_OPT_*, we can save a
few operations in bufferevent_run_*, which is critical-path.

show more ...


# 4dd3abd4 24-Dec-2013 Nick Mathewson <[email protected]>

Make bufferevent_trigger_nolock_() inline

Since most of its callers are using constant EV_READ or EV_WRITE, and
using constant 0 as its argument, this should eliminate most of the
overhead for this

Make bufferevent_trigger_nolock_() inline

Since most of its callers are using constant EV_READ or EV_WRITE, and
using constant 0 as its argument, this should eliminate most of the
overhead for this function in the fast case.

show more ...


# bd419471 05-Dec-2013 Ondřej Kuzník <[email protected]>

Clarifications in response to merge req. comments


# a7384c78 03-Dec-2013 Ondřej Kuzník <[email protected]>

Add an option to trigger bufferevent event callbacks


# 61ee18b8 03-Dec-2013 Ondřej Kuzník <[email protected]>

Add an option to trigger bufferevent I/O callbacks


# 4ce242bd 03-Dec-2013 Ondřej Kuzník <[email protected]>

Add watermark introspection


# dbc9cd4d 23-May-2013 Maxime Henrion <[email protected]>

Fix locking in bufferevent_get_options_().


# 31db8a02 23-May-2013 Maxime Henrion <[email protected]>

Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.


Revision tags: release-2.1.3-alpha
# 4ea4c6a9 10-Apr-2013 Nick Mathewson <[email protected]>

Remove bufferevent_del_generic_timeout_cbs as now unused


# 02fbf687 09-Apr-2013 Nick Mathewson <[email protected]>

Use finalization feature so bufferevents can avoid deadlocks

Since the bufferevents' events are now EV_FINALIZE (name pending),
they won't deadlock. To clean up properly, though, we must use the
fi

Use finalization feature so bufferevents can avoid deadlocks

Since the bufferevents' events are now EV_FINALIZE (name pending),
they won't deadlock. To clean up properly, though, we must use the
finalization feature.

This patch also split bufferevent deallocation into an "unlink" step
that happens fast, and a "destruct" step that happens after
finalization.

More work is needed: there needs to be a way to specify a finalizer
for the bufferevent's argument itself. Also, this finalizer business
makes lots of the reference counting we were doing unnecessary.

Also, more testing is needed.

show more ...


Revision tags: release-2.1.2-alpha
# 060c409e 19-Nov-2012 Nick Mathewson <[email protected]>

Make the argument to bufferevent_get_priority const


Revision tags: release-2.0.21-stable, release-2.0.20-stable
# c0e425ab 09-May-2012 Nick Mathewson <[email protected]>

Restore our priority-inversion-prevention code with deferreds

Back when deferred_cb stuff had its own queue, the queue was always
executed, but we never ran more than 16 callbacks per iteration.
Tha

Restore our priority-inversion-prevention code with deferreds

Back when deferred_cb stuff had its own queue, the queue was always
executed, but we never ran more than 16 callbacks per iteration.
That made for two problems:

1: Because deferred_cb stuff would always run, and had no priority,
it could cause priority inversion.

2: It doesn't respect the max_dispatch_interval code.

Then, when I refactored deferred_cb to be a special case of
event_callback, that solved the above issues, but made for two more
issues:

3: Because deferred_cb stuff would always get the default priority,
it could could low-priority bufferevents to get too much priority.

4: With code like bufferevent_pair, it's easy to get into a
situation where two deferreds keep adding one another, preventing
the event loop from ever actually scanning for more events.

This commit fixes the above by giving deferreds a better notion of
priorities, and by limiting the number of deferreds that can be
added to the _current_ loop iteration's active queues. (Extra
deferreds are put into the active_later state.)

That isn't an all-purpose priority inversion solution, of course: for
that, you may need to mess around with max_dispatch_interval.

show more ...


# bd395549 08-May-2012 Nick Mathewson <[email protected]>

Add a bufferevent_get_priority() function


Revision tags: release-2.0.19-stable
# a4079aa8 06-Apr-2012 Nick Mathewson <[email protected]>

Replace more deferred_cb names with event_callback


# ae2b84b2 06-Apr-2012 Nick Mathewson <[email protected]>

Replace deferred_cbs with event_callback-based implementation.


1234