void trelease(spdid_t spdid, td_t td) { struct torrent *t; td_t ntd; if (!tor_is_usrdef(td)) return; t = tor_lookup(td); if (!t) goto done; ntd = (td_t)t->data; server_trelease(cos_spd_id(), ntd); tor_free(t); done: return; }
static void http_free_request(struct http_request *r) { struct connection *c = r->c; struct http_request *next = r->next, *prev = r->prev; assert(c->pending_reqs); if (r->next != r) { next->prev = r->prev; prev->next = r->next; } //else assert(r->prev == r && c->pending_reqs == r); r->next = r->prev = NULL; //assert(c->pending_reqs == r); if (c->pending_reqs == r) { c->pending_reqs = (r == next) ? NULL : next; } server_trelease(cos_spd_id(), r->content_id); conn_refcnt_dec(c); __http_free_request(r); }