• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/transmission/libevent-2.0.20-stable/

Lines Matching defs:bev

113 bufferevent_update_buckets(struct bufferevent_private *bev)
115 /* Must hold lock on bev. */
118 event_base_gettimeofday_cached(bev->bev.ev_base, &now);
119 tick = ev_token_bucket_get_tick(&now, bev->rate_limiting->cfg);
120 if (tick != bev->rate_limiting->limit.last_updated)
121 ev_token_bucket_update(&bev->rate_limiting->limit,
122 bev->rate_limiting->cfg, tick);
200 _bufferevent_get_rlim_max(struct bufferevent_private *bev, int is_write)
202 /* needs lock on bev. */
218 if (!bev->rate_limiting)
226 if (bev->rate_limiting->cfg) {
227 bufferevent_update_buckets(bev);
228 max_so_far = LIM(bev->rate_limiting->limit);
230 if (bev->rate_limiting->group) {
232 bev->rate_limiting->group;
240 bufferevent_suspend_write(&bev->bev,
243 bufferevent_suspend_read(&bev->bev,
263 _bufferevent_get_read_max(struct bufferevent_private *bev)
265 return _bufferevent_get_rlim_max(bev, 0);
269 _bufferevent_get_write_max(struct bufferevent_private *bev)
271 return _bufferevent_get_rlim_max(bev, 1);
275 _bufferevent_decrement_read_buckets(struct bufferevent_private *bev, ev_ssize_t bytes)
279 /* need to hold lock on bev */
280 if (!bev->rate_limiting)
283 if (bev->rate_limiting->cfg) {
284 bev->rate_limiting->limit.read_limit -= bytes;
285 if (bev->rate_limiting->limit.read_limit <= 0) {
286 bufferevent_suspend_read(&bev->bev, BEV_SUSPEND_BW);
287 if (event_add(&bev->rate_limiting->refill_bucket_event,
288 &bev->rate_limiting->cfg->tick_timeout) < 0)
290 } else if (bev->read_suspended & BEV_SUSPEND_BW) {
291 if (!(bev->write_suspended & BEV_SUSPEND_BW))
292 event_del(&bev->rate_limiting->refill_bucket_event);
293 bufferevent_unsuspend_read(&bev->bev, BEV_SUSPEND_BW);
297 if (bev->rate_limiting->group) {
298 LOCK_GROUP(bev->rate_limiting->group);
299 bev->rate_limiting->group->rate_limit.read_limit -= bytes;
300 bev->rate_limiting->group->total_read += bytes;
301 if (bev->rate_limiting->group->rate_limit.read_limit <= 0) {
302 _bev_group_suspend_reading(bev->rate_limiting->group);
303 } else if (bev->rate_limiting->group->read_suspended) {
304 _bev_group_unsuspend_reading(bev->rate_limiting->group);
306 UNLOCK_GROUP(bev->rate_limiting->group);
313 _bufferevent_decrement_write_buckets(struct bufferevent_private *bev, ev_ssize_t bytes)
318 if (!bev->rate_limiting)
321 if (bev->rate_limiting->cfg) {
322 bev->rate_limiting->limit.write_limit -= bytes;
323 if (bev->rate_limiting->limit.write_limit <= 0) {
324 bufferevent_suspend_write(&bev->bev, BEV_SUSPEND_BW);
325 if (event_add(&bev->rate_limiting->refill_bucket_event,
326 &bev->rate_limiting->cfg->tick_timeout) < 0)
328 } else if (bev->write_suspended & BEV_SUSPEND_BW) {
329 if (!(bev->read_suspended & BEV_SUSPEND_BW))
330 event_del(&bev->rate_limiting->refill_bucket_event);
331 bufferevent_unsuspend_write(&bev->bev, BEV_SUSPEND_BW);
335 if (bev->rate_limiting->group) {
336 LOCK_GROUP(bev->rate_limiting->group);
337 bev->rate_limiting->group->rate_limit.write_limit -= bytes;
338 bev->rate_limiting->group->total_written += bytes;
339 if (bev->rate_limiting->group->rate_limit.write_limit <= 0) {
340 _bev_group_suspend_writing(bev->rate_limiting->group);
341 } else if (bev->rate_limiting->group->write_suspended) {
342 _bev_group_unsuspend_writing(bev->rate_limiting->group);
344 UNLOCK_GROUP(bev->rate_limiting->group);
355 struct bufferevent_private *bev;
365 TAILQ_FOREACH(bev, &g->members, rate_limiting->next_in_group) {
366 if (EVLOCK_TRY_LOCK(bev->lock)) {
367 bufferevent_suspend_read(&bev->bev,
369 EVLOCK_UNLOCK(bev->lock, 0);
380 struct bufferevent_private *bev;
383 TAILQ_FOREACH(bev, &g->members, rate_limiting->next_in_group) {
384 if (EVLOCK_TRY_LOCK(bev->lock)) {
385 bufferevent_suspend_write(&bev->bev,
387 EVLOCK_UNLOCK(bev->lock, 0);
400 struct bufferevent_private *bev = arg;
402 BEV_LOCK(&bev->bev);
403 if (!bev->rate_limiting || !bev->rate_limiting->cfg) {
404 BEV_UNLOCK(&bev->bev);
409 event_base_gettimeofday_cached(bev->bev.ev_base, &now);
411 bev->rate_limiting->cfg);
412 ev_token_bucket_update(&bev->rate_limiting->limit,
413 bev->rate_limiting->cfg,
417 if ((bev->read_suspended & BEV_SUSPEND_BW)) {
418 if (bev->rate_limiting->limit.read_limit > 0)
419 bufferevent_unsuspend_read(&bev->bev, BEV_SUSPEND_BW);
423 if ((bev->write_suspended & BEV_SUSPEND_BW)) {
424 if (bev->rate_limiting->limit.write_limit > 0)
425 bufferevent_unsuspend_write(&bev->bev, BEV_SUSPEND_BW);
437 event_add(&bev->rate_limiting->refill_bucket_event,
438 &bev->rate_limiting->cfg->tick_timeout);
440 BEV_UNLOCK(&bev->bev);
448 struct bufferevent_private *bev;
459 bev = TAILQ_FIRST(&group->members);
461 bev = TAILQ_NEXT(bev, rate_limiting->next_in_group);
463 return bev;
467 starting point, assigning each to the variable 'bev', and executing the
476 for (bev = first; bev != TAILQ_END(&g->members); \
477 bev = TAILQ_NEXT(bev, rate_limiting->next_in_group)) { \
480 for (bev = TAILQ_FIRST(&g->members); bev && bev != first; \
481 bev = TAILQ_NEXT(bev, rate_limiting->next_in_group)) { \
490 struct bufferevent_private *bev, *first;
494 if (EVLOCK_TRY_LOCK(bev->lock)) {
495 bufferevent_unsuspend_read(&bev->bev,
497 EVLOCK_UNLOCK(bev->lock, 0);
509 struct bufferevent_private *bev, *first;
513 if (EVLOCK_TRY_LOCK(bev->lock)) {
514 bufferevent_unsuspend_write(&bev->bev,
516 EVLOCK_UNLOCK(bev->lock, 0);
559 bufferevent_set_rate_limit(struct bufferevent *bev,
563 EVUTIL_UPCAST(bev, struct bufferevent_private, bev);
571 BEV_LOCK(bev);
577 bufferevent_unsuspend_read(bev, BEV_SUSPEND_BW);
578 bufferevent_unsuspend_write(bev, BEV_SUSPEND_BW);
586 event_base_gettimeofday_cached(bev->ev_base, &now);
611 evtimer_assign(&rlim->refill_bucket_event, bev->ev_base,
615 bufferevent_unsuspend_read(bev, BEV_SUSPEND_BW);
617 bufferevent_suspend_read(bev, BEV_SUSPEND_BW);
621 bufferevent_unsuspend_write(bev, BEV_SUSPEND_BW);
623 bufferevent_suspend_write(bev, BEV_SUSPEND_BW);
633 BEV_UNLOCK(bev);
732 bufferevent_add_to_rate_limit_group(struct bufferevent *bev,
737 EVUTIL_UPCAST(bev, struct bufferevent_private, bev);
738 BEV_LOCK(bev);
744 BEV_UNLOCK(bev);
747 evtimer_assign(&rlim->refill_bucket_event, bev->ev_base,
753 BEV_UNLOCK(bev);
757 bufferevent_remove_from_rate_limit_group(bev);
770 bufferevent_suspend_read(bev, BEV_SUSPEND_BW_GROUP);
772 bufferevent_suspend_write(bev, BEV_SUSPEND_BW_GROUP);
774 BEV_UNLOCK(bev);
779 bufferevent_remove_from_rate_limit_group(struct bufferevent *bev)
781 return bufferevent_remove_from_rate_limit_group_internal(bev, 1);
785 bufferevent_remove_from_rate_limit_group_internal(struct bufferevent *bev,
789 EVUTIL_UPCAST(bev, struct bufferevent_private, bev);
790 BEV_LOCK(bev);
801 bufferevent_unsuspend_read(bev, BEV_SUSPEND_BW_GROUP);
802 bufferevent_unsuspend_write(bev, BEV_SUSPEND_BW_GROUP);
804 BEV_UNLOCK(bev);
818 bufferevent_get_read_limit(struct bufferevent *bev)
822 BEV_LOCK(bev);
823 bevp = BEV_UPCAST(bev);
830 BEV_UNLOCK(bev);
837 bufferevent_get_write_limit(struct bufferevent *bev)
841 BEV_LOCK(bev);
842 bevp = BEV_UPCAST(bev);
849 BEV_UNLOCK(bev);
854 bufferevent_get_max_to_read(struct bufferevent *bev)
857 BEV_LOCK(bev);
858 r = _bufferevent_get_read_max(BEV_UPCAST(bev));
859 BEV_UNLOCK(bev);
864 bufferevent_get_max_to_write(struct bufferevent *bev)
867 BEV_LOCK(bev);
868 r = _bufferevent_get_write_max(BEV_UPCAST(bev));
869 BEV_UNLOCK(bev);
901 bufferevent_decrement_read_limit(struct bufferevent *bev, ev_ssize_t decr)
906 BEV_LOCK(bev);
907 bevp = BEV_UPCAST(bev);
913 bufferevent_suspend_read(bev, BEV_SUSPEND_BW);
920 bufferevent_unsuspend_read(bev, BEV_SUSPEND_BW);
923 BEV_UNLOCK(bev);
928 bufferevent_decrement_write_limit(struct bufferevent *bev, ev_ssize_t decr)
935 BEV_LOCK(bev);
936 bevp = BEV_UPCAST(bev);
942 bufferevent_suspend_write(bev, BEV_SUSPEND_BW);
949 bufferevent_unsuspend_write(bev, BEV_SUSPEND_BW);
952 BEV_UNLOCK(bev);