void delete_timer(struct timer **_t) { if(_t && *_t){ struct timer *t = *_t; minheap_destroy(&t->_minheap); free(t); *_t = NULL; } }
void sche_destroy(sche_t *s) { struct double_link_node *dlnode = NULL; while(dlnode = double_link_pop(&(*s)->coros)) { coro_t co = (coro_t)dlnode+sizeof(struct list_node); coro_destroy(&co); } LINK_LIST_DESTROY(&((*s)->active_list_1)); LINK_LIST_DESTROY(&((*s)->active_list_2)); minheap_destroy(&((*s)->_minheap)); coro_destroy(&(*s)->co); free(*s); *s = NULL; }