Exemplo n.º 1
0
void net_mgr_free(net_mgr_t nmgr) {
    net_chanel_t chanel;

    assert(nmgr);

    /*free connectors*/
    net_connectors_free(nmgr);
    cpe_hash_table_fini(&nmgr->m_connectors);

    /*free listeners*/
    net_listeners_free(nmgr);
    cpe_hash_table_fini(&nmgr->m_listeners);

    /*free eps*/
    net_ep_pages_free(nmgr);
    cpe_range_mgr_fini(&nmgr->m_ep_ids);

    /*free event loop*/
    ev_loop_destroy(nmgr->m_ev_loop);
    nmgr->m_ev_loop = NULL;

    /*TODO*/
    while((chanel = TAILQ_FIRST(&nmgr->m_chanels))) {
        net_chanel_free(chanel);
    }

    mem_free(nmgr->m_alloc, nmgr);
}
Exemplo n.º 2
0
void net_ep_free(net_ep_t ep) {
    if (ep->m_connector) {
        net_connector_unbind(ep->m_connector);
    }

    if (net_ep_is_open(ep)) {
        net_ep_close_i(ep, net_ep_event_close_by_shutdown);
    }

    if (ep->m_chanel_w) {
        net_chanel_free(ep->m_chanel_w);
        ep->m_chanel_w = NULL;
    }

    if (ep->m_chanel_r) {
        net_chanel_free(ep->m_chanel_r);
        ep->m_chanel_r = NULL;
    }

    net_ep_pages_free_ep(ep);
}
Exemplo n.º 3
0
void net_ep_set_chanel_w(net_ep_t ep, net_chanel_t chanel) {
    int old_events;

    old_events = net_ep_calc_ev_events(ep);

    if (ep->m_chanel_w) {
        net_chanel_free(ep->m_chanel_w);
    }

    ep->m_chanel_w = chanel;

    net_ep_update_events(ep, old_events);
}