Lines Matching defs:group

220 	   bucket, and take the smaller of our rate limit and the group
228 if (bev->rate_limiting->group) {
230 bev->rate_limiting->group;
236 * group. */
295 if (bev->rate_limiting->group) {
296 LOCK_GROUP(bev->rate_limiting->group);
297 bev->rate_limiting->group->rate_limit.read_limit -= bytes;
298 bev->rate_limiting->group->total_read += bytes;
299 if (bev->rate_limiting->group->rate_limit.read_limit <= 0) {
300 bev_group_suspend_reading_(bev->rate_limiting->group);
301 } else if (bev->rate_limiting->group->read_suspended) {
302 bev_group_unsuspend_reading_(bev->rate_limiting->group);
304 UNLOCK_GROUP(bev->rate_limiting->group);
333 if (bev->rate_limiting->group) {
334 LOCK_GROUP(bev->rate_limiting->group);
335 bev->rate_limiting->group->rate_limit.write_limit -= bytes;
336 bev->rate_limiting->group->total_written += bytes;
337 if (bev->rate_limiting->group->rate_limit.write_limit <= 0) {
338 bev_group_suspend_writing_(bev->rate_limiting->group);
339 } else if (bev->rate_limiting->group->write_suspended) {
340 bev_group_unsuspend_writing_(bev->rate_limiting->group);
342 UNLOCK_GROUP(bev->rate_limiting->group);
352 /* Needs group lock */
358 to prevent a deadlock. (Ordinarily, the group lock nests inside
361 and sees that its group is suspended.)
377 /* Needs group lock */
441 /** Helper: grab a random element from a bufferevent group.
443 * Requires that we hold the lock on the group.
446 bev_group_random_element_(struct bufferevent_rate_limit_group *group)
451 /* requires group lock */
453 if (!group->n_members)
456 EVUTIL_ASSERT(! LIST_EMPTY(&group->members));
458 which = evutil_weakrand_range_(&group->weakrand_seed, group->n_members);
460 bev = LIST_FIRST(&group->members);
467 /** Iterate over the elements of a rate-limiting group 'g' with a random
471 We do this in a half-baked effort to get fairness among group members.
525 /** Callback invoked every tick to add more elements to the group bucket
526 and unsuspend group members as needed.
754 if (bevp->rate_limiting->group == g) {
758 if (bevp->rate_limiting->group)
762 bevp->rate_limiting->group = g;
792 if (bevp->rate_limiting && bevp->rate_limiting->group) {
794 bevp->rate_limiting->group;
796 bevp->rate_limiting->group = NULL;