static ngx_int_t internal_dequeue(subscriber_t *self) { internal_subscriber_t *f = (internal_subscriber_t *)self; assert(!f->already_dequeued); f->already_dequeued = 1; DBG("%p (%s) dequeue sub", self, f->sub.name); f->dequeue(NGX_OK, NULL, f->privdata); f->dequeue_handler(self, f->dequeue_handler_data); if(self->cf->subscriber_timeout > 0 && f->timeout_ev.timer_set) { ngx_del_timer(&f->timeout_ev); } if(self->destroy_after_dequeue) { internal_subscriber_destroy(self); } return NGX_OK; }
ngx_int_t memstore_redis_subscriber_destroy(subscriber_t *sub) { DBG("%p destroy", sub); return internal_subscriber_destroy(sub); }