Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [02fbf6] Maximize Restore History

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.

Nick Mathewson Nick Mathewson 2013-04-09

changed buffer.c
changed bufferevent-internal.h
changed bufferevent.c
changed bufferevent_async.c
changed bufferevent_filter.c
changed bufferevent_openssl.c
changed bufferevent_pair.c
changed bufferevent_ratelim.c
changed bufferevent_sock.c
changed evbuffer-internal.h
buffer.c Diff Switch to side-by-side view
Loading...
bufferevent-internal.h Diff Switch to side-by-side view
Loading...
bufferevent.c Diff Switch to side-by-side view
Loading...
bufferevent_async.c Diff Switch to side-by-side view
Loading...
bufferevent_filter.c Diff Switch to side-by-side view
Loading...
bufferevent_openssl.c Diff Switch to side-by-side view
Loading...
bufferevent_pair.c Diff Switch to side-by-side view
Loading...
bufferevent_ratelim.c Diff Switch to side-by-side view
Loading...
bufferevent_sock.c Diff Switch to side-by-side view
Loading...
evbuffer-internal.h Diff Switch to side-by-side view
Loading...