struct request * request_borrow(void) { struct request *req; FREEPOOL_BORROW(req, &reqp, next, request_create); if (req == NULL) { log_debug("borrow req failed: OOM %d"); return NULL; } request_reset(req); DECR(request_metrics, request_free); INCR(request_metrics, request_borrow); log_vverb("borrowing req %p", req); return req; }
struct response * response_borrow(void) { struct response *rsp; FREEPOOL_BORROW(rsp, &rspp, next, response_create); if (rsp == NULL) { log_debug("borrow rsp failed: OOM %d"); return NULL; } response_reset(rsp); DECR(response_metrics, response_free); INCR(response_metrics, response_borrow); log_vverb("borrowing rsp %p", rsp); return rsp; }