Replace more deferred_cb names with event_callback

This commit is contained in:
Nick Mathewson 2012-04-06 11:05:35 -04:00
parent ae2b84b257
commit a4079aa88a
11 changed files with 32 additions and 40 deletions

View File

@ -142,7 +142,7 @@
static void evbuffer_chain_align(struct evbuffer_chain *chain); static void evbuffer_chain_align(struct evbuffer_chain *chain);
static int evbuffer_chain_should_realign(struct evbuffer_chain *chain, static int evbuffer_chain_should_realign(struct evbuffer_chain *chain,
size_t datalen); size_t datalen);
static void evbuffer_deferred_callback(struct deferred_cb *cb, void *arg); static void evbuffer_deferred_callback(struct event_callback *cb, void *arg);
static int evbuffer_ptr_memcmp(const struct evbuffer *buf, static int evbuffer_ptr_memcmp(const struct evbuffer *buf,
const struct evbuffer_ptr *pos, const char *mem, size_t len); const struct evbuffer_ptr *pos, const char *mem, size_t len);
static struct evbuffer_chain *evbuffer_expand_singlechain(struct evbuffer *buf, static struct evbuffer_chain *evbuffer_expand_singlechain(struct evbuffer *buf,
@ -402,7 +402,7 @@ int
evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base *base) evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base *base)
{ {
EVBUFFER_LOCK(buffer); EVBUFFER_LOCK(buffer);
buffer->cb_queue = event_base_get_deferred_cb_queue_(base); buffer->cb_queue = base;
buffer->deferred_cbs = 1; buffer->deferred_cbs = 1;
event_deferred_cb_init_(base, &buffer->deferred, event_deferred_cb_init_(base, &buffer->deferred,
evbuffer_deferred_callback, buffer); evbuffer_deferred_callback, buffer);
@ -521,7 +521,7 @@ evbuffer_invoke_callbacks_(struct evbuffer *buffer)
} }
static void static void
evbuffer_deferred_callback(struct deferred_cb *cb, void *arg) evbuffer_deferred_callback(struct event_callback *cb, void *arg)
{ {
struct bufferevent *parent = NULL; struct bufferevent *parent = NULL;
struct evbuffer *buffer = arg; struct evbuffer *buffer = arg;

View File

@ -183,7 +183,7 @@ struct bufferevent_private {
int dns_error; int dns_error;
/** Used to implement deferred callbacks */ /** Used to implement deferred callbacks */
struct deferred_cb deferred; struct event_callback deferred;
/** The options this bufferevent was constructed with */ /** The options this bufferevent was constructed with */
enum bufferevent_options options; enum bufferevent_options options;

View File

@ -131,7 +131,7 @@ bufferevent_inbuf_wm_cb(struct evbuffer *buf,
} }
static void static void
bufferevent_run_deferred_callbacks_locked(struct deferred_cb *cb, void *arg) bufferevent_run_deferred_callbacks_locked(struct event_callback *cb, void *arg)
{ {
struct bufferevent_private *bufev_private = arg; struct bufferevent_private *bufev_private = arg;
struct bufferevent *bufev = &bufev_private->bev; struct bufferevent *bufev = &bufev_private->bev;
@ -164,7 +164,7 @@ bufferevent_run_deferred_callbacks_locked(struct deferred_cb *cb, void *arg)
} }
static void static void
bufferevent_run_deferred_callbacks_unlocked(struct deferred_cb *cb, void *arg) bufferevent_run_deferred_callbacks_unlocked(struct event_callback *cb, void *arg)
{ {
struct bufferevent_private *bufev_private = arg; struct bufferevent_private *bufev_private = arg;
struct bufferevent *bufev = &bufev_private->bev; struct bufferevent *bufev = &bufev_private->bev;
@ -211,7 +211,7 @@ bufferevent_run_deferred_callbacks_unlocked(struct deferred_cb *cb, void *arg)
#define SCHEDULE_DEFERRED(bevp) \ #define SCHEDULE_DEFERRED(bevp) \
do { \ do { \
if (event_deferred_cb_schedule_( \ if (event_deferred_cb_schedule_( \
event_base_get_deferred_cb_queue_((bevp)->bev.ev_base), \ (bevp)->bev.ev_base, \
&(bevp)->deferred)) \ &(bevp)->deferred)) \
bufferevent_incref_(&(bevp)->bev); \ bufferevent_incref_(&(bevp)->bev); \
} while (0) } while (0)

View File

@ -35,26 +35,23 @@ extern "C" {
#include <sys/queue.h> #include <sys/queue.h>
#define deferred_cb event_callback
#define deferred_cb_queue event_base
struct event_callback; struct event_callback;
typedef void (*deferred_cb_fn)(struct event_callback *, void *); typedef void (*deferred_cb_fn)(struct event_callback *, void *);
/** /**
Initialize an empty, non-pending deferred_cb. Initialize an empty, non-pending event_callback.
@param deferred The deferred_cb structure to initialize. @param deferred The struct event_callback structure to initialize.
@param cb The function to run when the deferred_cb executes. @param cb The function to run when the struct event_callback executes.
@param arg The function's second argument. @param arg The function's second argument.
*/ */
void event_deferred_cb_init_(struct event_base *base, struct event_callback *, deferred_cb_fn, void *); void event_deferred_cb_init_(struct event_base *base, struct event_callback *, deferred_cb_fn, void *);
/** /**
Cancel a deferred_cb if it is currently scheduled in an event_base. Cancel a struct event_callback if it is currently scheduled in an event_base.
*/ */
void event_deferred_cb_cancel_(struct event_base *, struct event_callback *); void event_deferred_cb_cancel_(struct event_base *, struct event_callback *);
/** /**
Activate a deferred_cb if it is not currently scheduled in an event_base. Activate a struct event_callback if it is not currently scheduled in an event_base.
Return true iff it was not previously scheduled. Return true iff it was not previously scheduled.
*/ */
@ -64,7 +61,5 @@ int event_deferred_cb_schedule_(struct event_base *, struct event_callback *);
} }
#endif #endif
#define event_base_get_deferred_cb_queue_(x) (x)
#endif /* EVENT_INTERNAL_H_INCLUDED_ */ #endif /* EVENT_INTERNAL_H_INCLUDED_ */

View File

@ -135,7 +135,7 @@ struct evbuffer {
ev_uint32_t flags; ev_uint32_t flags;
/** Used to implement deferred callbacks. */ /** Used to implement deferred callbacks. */
struct deferred_cb_queue *cb_queue; struct event_base *cb_queue;
/** A reference count on this evbuffer. When the reference count /** A reference count on this evbuffer. When the reference count
* reaches 0, the buffer is destroyed. Manipulated with * reaches 0, the buffer is destroyed. Manipulated with
@ -143,9 +143,9 @@ struct evbuffer {
* evbuffer_free. */ * evbuffer_free. */
int refcnt; int refcnt;
/** A deferred_cb handle to make all of this buffer's callbacks /** A struct event_callback handle to make all of this buffer's callbacks
* invoked from the event loop. */ * invoked from the event loop. */
struct deferred_cb deferred; struct event_callback deferred;
/** A doubly-linked-list of callback functions */ /** A doubly-linked-list of callback functions */
LIST_HEAD(evbuffer_cb_queue, evbuffer_cb_entry) callbacks; LIST_HEAD(evbuffer_cb_queue, evbuffer_cb_entry) callbacks;

View File

@ -754,7 +754,7 @@ evdns_requests_pump_waiting_queue(struct evdns_base *base) {
/* TODO(nickm) document */ /* TODO(nickm) document */
struct deferred_reply_callback { struct deferred_reply_callback {
struct deferred_cb deferred; struct event_callback deferred;
struct evdns_request *handle; struct evdns_request *handle;
u8 request_type; u8 request_type;
u8 have_reply; u8 have_reply;
@ -765,7 +765,7 @@ struct deferred_reply_callback {
}; };
static void static void
reply_run_callback(struct deferred_cb *d, void *user_pointer) reply_run_callback(struct event_callback *d, void *user_pointer)
{ {
struct deferred_reply_callback *cb = struct deferred_reply_callback *cb =
EVUTIL_UPCAST(d, struct deferred_reply_callback, deferred); EVUTIL_UPCAST(d, struct deferred_reply_callback, deferred);
@ -840,7 +840,7 @@ reply_schedule_callback(struct request *const req, u32 ttl, u32 err, struct repl
&d->deferred, reply_run_callback, &d->deferred, reply_run_callback,
req->user_pointer); req->user_pointer);
event_deferred_cb_schedule_( event_deferred_cb_schedule_(
event_base_get_deferred_cb_queue_(req->base->event_base), req->base->event_base,
&d->deferred); &d->deferred);
} }

View File

@ -2128,7 +2128,7 @@ evthread_notify_base_eventfd(struct event_base *base)
/** Tell the thread currently running the event_loop for base (if any) that it /** Tell the thread currently running the event_loop for base (if any) that it
* needs to stop waiting in its dispatch function (if it is) and process all * needs to stop waiting in its dispatch function (if it is) and process all
* active events and deferred callbacks (if there are any). */ * active callbacks. */
static int static int
evthread_notify_base(struct event_base *base) evthread_notify_base(struct event_base *base)
{ {

View File

@ -103,7 +103,7 @@ struct evhttp_connection {
void (*closecb)(struct evhttp_connection *, void *); void (*closecb)(struct evhttp_connection *, void *);
void *closecb_arg; void *closecb_arg;
struct deferred_cb read_more_deferred_cb; struct event_callback read_more_deferred_cb;
struct event_base *base; struct event_base *base;
struct evdns_base *dns_base; struct evdns_base *dns_base;

4
http.c
View File

@ -1017,7 +1017,7 @@ evhttp_read_body(struct evhttp_connection *evcon, struct evhttp_request *req)
} }
#define get_deferred_queue(evcon) \ #define get_deferred_queue(evcon) \
(event_base_get_deferred_cb_queue_((evcon)->base)) ((evcon)->base)
/* /*
* Gets called when more data becomes available * Gets called when more data becomes available
@ -1079,7 +1079,7 @@ evhttp_read_cb(struct bufferevent *bufev, void *arg)
} }
static void static void
evhttp_deferred_read_cb(struct deferred_cb *cb, void *data) evhttp_deferred_read_cb(struct event_callback *cb, void *data)
{ {
struct evhttp_connection *evcon = data; struct evhttp_connection *evcon = data;
evhttp_read_cb(evcon->bufev, evcon); evhttp_read_cb(evcon->bufev, evcon);

View File

@ -440,7 +440,7 @@ struct accepting_socket {
struct event_overlapped overlapped; struct event_overlapped overlapped;
SOCKET s; SOCKET s;
int error; int error;
struct deferred_cb deferred; struct event_callback deferred;
struct evconnlistener_iocp *lev; struct evconnlistener_iocp *lev;
ev_uint8_t buflen; ev_uint8_t buflen;
ev_uint8_t family; ev_uint8_t family;
@ -450,7 +450,7 @@ struct accepting_socket {
static void accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key, static void accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key,
ev_ssize_t n, int ok); ev_ssize_t n, int ok);
static void accepted_socket_invoke_user_cb(struct deferred_cb *cb, void *arg); static void accepted_socket_invoke_user_cb(struct event_callback *cb, void *arg);
static void static void
iocp_listener_event_add(struct evconnlistener_iocp *lev) iocp_listener_event_add(struct evconnlistener_iocp *lev)
@ -566,7 +566,7 @@ start_accepting(struct accepting_socket *as)
report_err: report_err:
as->error = error; as->error = error;
event_deferred_cb_schedule_( event_deferred_cb_schedule_(
event_base_get_deferred_cb_queue_(as->lev->event_base), as->lev->event_base,
&as->deferred); &as->deferred);
return 0; return 0;
} }
@ -581,7 +581,7 @@ stop_accepting(struct accepting_socket *as)
} }
static void static void
accepted_socket_invoke_user_cb(struct deferred_cb *dcb, void *arg) accepted_socket_invoke_user_cb(struct event_callback *dcb, void *arg)
{ {
struct accepting_socket *as = arg; struct accepting_socket *as = arg;
@ -658,7 +658,7 @@ accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key, ev_ssize_t n, i
if (ok) { if (ok) {
/* XXXX Don't do this if some EV_MT flag is set. */ /* XXXX Don't do this if some EV_MT flag is set. */
event_deferred_cb_schedule_( event_deferred_cb_schedule_(
event_base_get_deferred_cb_queue_(as->lev->event_base), as->lev->event_base,
&as->deferred); &as->deferred);
LeaveCriticalSection(&as->lock); LeaveCriticalSection(&as->lock);
} else if (as->free_on_cb) { } else if (as->free_on_cb) {
@ -683,7 +683,7 @@ accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key, ev_ssize_t n, i
as->error = WSAGetLastError(); as->error = WSAGetLastError();
} }
event_deferred_cb_schedule_( event_deferred_cb_schedule_(
event_base_get_deferred_cb_queue_(as->lev->event_base), as->lev->event_base,
&as->deferred); &as->deferred);
LeaveCriticalSection(&as->lock); LeaveCriticalSection(&as->lock);
} }

View File

@ -415,8 +415,8 @@ SLEEP_MS(int ms)
} }
struct deferred_test_data { struct deferred_test_data {
struct deferred_cb cbs[CB_COUNT]; struct event_callback cbs[CB_COUNT];
struct deferred_cb_queue *queue; struct event_base *queue;
}; };
static struct timeval timer_start = {0,0}; static struct timeval timer_start = {0,0};
@ -426,7 +426,7 @@ static THREAD_T load_threads[QUEUE_THREAD_COUNT];
static struct deferred_test_data deferred_data[QUEUE_THREAD_COUNT]; static struct deferred_test_data deferred_data[QUEUE_THREAD_COUNT];
static void static void
deferred_callback(struct deferred_cb *cb, void *arg) deferred_callback(struct event_callback *cb, void *arg)
{ {
SLEEP_MS(1); SLEEP_MS(1);
callback_count += 1; callback_count += 1;
@ -469,14 +469,11 @@ thread_deferred_cb_skew(void *arg)
{ {
struct basic_test_data *data = arg; struct basic_test_data *data = arg;
struct timeval tv_timer = {1, 0}; struct timeval tv_timer = {1, 0};
struct deferred_cb_queue *queue; struct event_base *queue = data->base;
struct timeval elapsed; struct timeval elapsed;
int elapsed_usec; int elapsed_usec;
int i; int i;
queue = event_base_get_deferred_cb_queue_(data->base);
tt_assert(queue);
for (i = 0; i < QUEUE_THREAD_COUNT; ++i) for (i = 0; i < QUEUE_THREAD_COUNT; ++i)
deferred_data[i].queue = queue; deferred_data[i].queue = queue;