Lines Matching refs:quota
9 /* $Id: quota.c,v 1.18 2007/06/19 23:47:17 tbox Exp $ */
17 #include <isc/quota.h>
21 isc_quota_init(isc_quota_t *quota, int max) {
22 quota->max = max;
23 quota->used = 0;
24 quota->soft = 0;
25 return (isc_mutex_init("a->lock));
29 isc_quota_destroy(isc_quota_t *quota) {
30 INSIST(quota->used == 0);
31 quota->max = 0;
32 quota->used = 0;
33 quota->soft = 0;
34 DESTROYLOCK("a->lock);
38 isc_quota_soft(isc_quota_t *quota, int soft) {
39 LOCK("a->lock);
40 quota->soft = soft;
41 UNLOCK("a->lock);
45 isc_quota_max(isc_quota_t *quota, int max) {
46 LOCK("a->lock);
47 quota->max = max;
48 UNLOCK("a->lock);
52 isc_quota_reserve(isc_quota_t *quota) {
54 LOCK("a->lock);
55 if (quota->max == 0 || quota->used < quota->max) {
56 if (quota->soft == 0 || quota->used < quota->soft)
60 quota->used++;
63 UNLOCK("a->lock);
68 isc_quota_release(isc_quota_t *quota) {
69 LOCK("a->lock);
70 INSIST(quota->used > 0);
71 quota->used--;
72 UNLOCK("a->lock);
76 isc_quota_attach(isc_quota_t *quota, isc_quota_t **p)
80 result = isc_quota_reserve(quota);
82 *p = quota;