diff --git a/bufferevent-internal.h b/bufferevent-internal.h index 1b56c432..c7f5109c 100644 --- a/bufferevent-internal.h +++ b/bufferevent-internal.h @@ -59,7 +59,7 @@ extern "C" { struct bufferevent_rate_limit_group { /** List of all members in the group */ - TAILQ_HEAD(rlim_group_member_list, bufferevent_private) members; + LIST_HEAD(rlim_group_member_list, bufferevent_private) members; /** Current limits for the group. */ struct ev_token_bucket rate_limit; struct ev_token_bucket_cfg rate_limit_cfg; @@ -108,7 +108,7 @@ struct bufferevent_rate_limit { * * Note that this field is supposed to be protected by the group * lock */ - TAILQ_ENTRY(bufferevent_private) next_in_group; + LIST_ENTRY(bufferevent_private) next_in_group; /** The rate-limiting group for this bufferevent, or NULL if it is * only rate-limited on its own. */ struct bufferevent_rate_limit_group *group; diff --git a/bufferevent_ratelim.c b/bufferevent_ratelim.c index d32f63b3..78d0c430 100644 --- a/bufferevent_ratelim.c +++ b/bufferevent_ratelim.c @@ -339,7 +339,7 @@ _bev_group_suspend_reading(struct bufferevent_rate_limit_group *g) bufferevent, it will find out later when it looks at its limit and sees that its group is suspended. */ - TAILQ_FOREACH(bev, &g->members, rate_limiting->next_in_group) { + LIST_FOREACH(bev, &g->members, rate_limiting->next_in_group) { if (EVLOCK_TRY_LOCK(bev->lock)) { bufferevent_suspend_read(&bev->bev, BEV_SUSPEND_BW_GROUP); @@ -357,7 +357,7 @@ _bev_group_suspend_writing(struct bufferevent_rate_limit_group *g) struct bufferevent_private *bev; g->write_suspended = 1; g->pending_unsuspend_write = 0; - TAILQ_FOREACH(bev, &g->members, rate_limiting->next_in_group) { + LIST_FOREACH(bev, &g->members, rate_limiting->next_in_group) { if (EVLOCK_TRY_LOCK(bev->lock)) { bufferevent_suspend_write(&bev->bev, BEV_SUSPEND_BW_GROUP); @@ -429,13 +429,13 @@ _bev_group_random_element(struct bufferevent_rate_limit_group *group) if (!group->n_members) return NULL; - EVUTIL_ASSERT(! TAILQ_EMPTY(&group->members)); + EVUTIL_ASSERT(! LIST_EMPTY(&group->members)); which = _evutil_weakrand() % group->n_members; - bev = TAILQ_FIRST(&group->members); + bev = LIST_FIRST(&group->members); while (which--) - bev = TAILQ_NEXT(bev, rate_limiting->next_in_group); + bev = LIST_NEXT(bev, rate_limiting->next_in_group); return bev; } @@ -450,12 +450,12 @@ _bev_group_random_element(struct bufferevent_rate_limit_group *group) #define FOREACH_RANDOM_ORDER(block) \ do { \ first = _bev_group_random_element(g); \ - for (bev = first; bev != TAILQ_END(&g->members); \ - bev = TAILQ_NEXT(bev, rate_limiting->next_in_group)) { \ + for (bev = first; bev != LIST_END(&g->members); \ + bev = LIST_NEXT(bev, rate_limiting->next_in_group)) { \ block ; \ } \ - for (bev = TAILQ_FIRST(&g->members); bev && bev != first; \ - bev = TAILQ_NEXT(bev, rate_limiting->next_in_group)) { \ + for (bev = LIST_FIRST(&g->members); bev && bev != first; \ + bev = LIST_NEXT(bev, rate_limiting->next_in_group)) { \ block ; \ } \ } while (0) @@ -602,7 +602,7 @@ bufferevent_rate_limit_group_new(struct event_base *base, if (!g) return NULL; memcpy(&g->rate_limit_cfg, cfg, sizeof(g->rate_limit_cfg)); - TAILQ_INIT(&g->members); + LIST_INIT(&g->members); ev_token_bucket_init(&g->rate_limit, cfg, tick, 0); @@ -687,7 +687,7 @@ bufferevent_add_to_rate_limit_group(struct bufferevent *bev, LOCK_GROUP(g); bevp->rate_limiting->group = g; ++g->n_members; - TAILQ_INSERT_TAIL(&g->members, bevp, rate_limiting->next_in_group); + LIST_INSERT_HEAD(&g->members, bevp, rate_limiting->next_in_group); rsuspend = g->read_suspended; wsuspend = g->write_suspended; @@ -715,7 +715,7 @@ bufferevent_remove_from_rate_limit_group(struct bufferevent *bev) LOCK_GROUP(g); bevp->rate_limiting->group = NULL; --g->n_members; - TAILQ_REMOVE(&g->members, bevp, rate_limiting->next_in_group); + LIST_REMOVE(bevp, rate_limiting->next_in_group); UNLOCK_GROUP(g); } bufferevent_unsuspend_read(bev, BEV_SUSPEND_BW_GROUP);