mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
Fix small problems in the isc_ratelimiter
This commit is contained in:
@@ -57,10 +57,13 @@ ratelimiter_tick(void *arg);
|
||||
isc_result_t
|
||||
isc_ratelimiter_create(isc_loop_t *loop, isc_ratelimiter_t **ratelimiterp) {
|
||||
isc_ratelimiter_t *rl = NULL;
|
||||
isc_mem_t *mctx = isc_loop_getmctx(loop);
|
||||
isc_mem_t *mctx;
|
||||
|
||||
INSIST(loop != NULL);
|
||||
INSIST(ratelimiterp != NULL && *ratelimiterp == NULL);
|
||||
|
||||
mctx = isc_loop_getmctx(loop);
|
||||
|
||||
rl = isc_mem_get(mctx, sizeof(*rl));
|
||||
*rl = (isc_ratelimiter_t){
|
||||
.pertic = 1,
|
||||
@@ -237,6 +240,7 @@ isc_ratelimiter_shutdown(isc_ratelimiter_t *rl) {
|
||||
REQUIRE(VALID_RATELIMITER(rl));
|
||||
|
||||
LOCK(&rl->lock);
|
||||
if (rl->state != isc_ratelimiter_shuttingdown) {
|
||||
rl->state = isc_ratelimiter_shuttingdown;
|
||||
|
||||
while ((event = ISC_LIST_HEAD(rl->pending)) != NULL) {
|
||||
@@ -245,6 +249,7 @@ isc_ratelimiter_shutdown(isc_ratelimiter_t *rl) {
|
||||
isc_task_send(event->ev_sender, &event);
|
||||
}
|
||||
isc_loop_detach(&rl->loop);
|
||||
}
|
||||
UNLOCK(&rl->lock);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user