void sc_readpool_free(screadpool *p) { so_listdestroy(&p->list, 0); so_listdestroy(&p->list_active, 0); so_listdestroy(&p->list_ready, 0); ss_mutexfree(&p->lock); ss_condfree(&p->cond); }
int se_scheduler_shutdown(sescheduler *s) { se *e = (se*)s->env; se_reqwakeup(e); int rcret = 0; int rc = se_workerpool_shutdown(&s->workers, &e->r); if (ssunlikely(rc == -1)) rcret = -1; if (s->i) { ss_free(&e->a, s->i); s->i = NULL; } ss_mutexfree(&s->lock); return rcret; }