Example #1
0
/* clean xmap */
void xmap_clean(XMAP *xmap)
{
    if(xmap)
    {
        //WARN_LOGGER(xmap->logger, "Ready clean tree[%p]", xmap->tree);
        mmtree_close(xmap->tree);
        //WARN_LOGGER(xmap->logger, "Ready clean tree64[%p]", xmap->tree64);
        mmtree64_close(xmap->tree64);
        //WARN_LOGGER(xmap->logger, "Ready clean queue[%p]", xmap->queue);
        mmqueue_clean(xmap->queue);
        //WARN_LOGGER(xmap->logger, "Ready clean kmap[%p]", xmap->kmap);
        mmtrie_clean(xmap->kmap);
        //WARN_LOGGER(xmap->logger, "Ready reset db[%p]", xmap->db);
        cdb_reset(xmap->db);
        //WARN_LOGGER(xmap->logger, "Ready clean db[%p]", xmap->db);
        cdb_clean(xmap->db);
        if(xmap->diskio.map)
        {
            munmap(xmap->diskio.map, xmap->diskio.size);
            xmap->diskio.map = NULL;
        }
        if(xmap->diskio.fd > 0)
        {
            close(xmap->diskio.fd);
            xmap->diskio.fd = 0;
        }
        if(xmap->metaio.map)
        {
            munmap(xmap->metaio.map, xmap->metaio.size);
            xmap->metaio.map = NULL;
        }
        if(xmap->metaio.fd > 0)
        {
            close(xmap->metaio.fd);
            xmap->metaio.fd = 0;
        }
        if(xmap->stateio.map)
        {
            munmap(xmap->stateio.map, xmap->stateio.size);
            xmap->stateio.map = NULL;
        }
        if(xmap->stateio.fd > 0)
        {
            close(xmap->stateio.fd);
            xmap->stateio.fd = 0;
        }
        //WARN_LOGGER(xmap->logger, "Ready clean mutex[%p]", xmap->mutex);
        MUTEX_DESTROY(xmap->mutex);
        MUTEX_DESTROY(xmap->cmutex);
        LOGGER_CLEAN(xmap->logger);
        xmm_free(xmap, sizeof(XMAP));
    }
    return ;
}
Example #2
0
/* Clean evbase */
void evselect_clean(EVBASE *evbase)
{
    if(evbase)
    {
        //MUTEX_DESTROY(evbase->mutex);
        if(evbase->logger)LOGGER_CLEAN(evbase->logger);
        if(evbase->evlist)free(evbase->evlist);
        if(evbase->evs)free(evbase->evs);
        if(evbase->ev_fds)free(evbase->ev_fds);
        if(evbase->ev_read_fds)free(evbase->ev_read_fds);
        if(evbase->ev_write_fds)free(evbase->ev_write_fds);
        xmm_free(evbase, sizeof(EVBASE));
    }
    return ;
}
Example #3
0
/*
 * close/clean wtable
 * */
void wtable_close(WTABLE *w)
{
    if(w)
    {
        if(w->statefd > 0) close(w->statefd);
        w->statefd = 0;
        if(w->state) munmap(w->state, sizeof(WSTATE));
        w->state = NULL;
        db_clean(w->mdb);
        mqueue_clean(MQ(w->queue));
        mmtrie_clean(w->map);
        mtree_close(w->mtree);
        mmtree64_close(w->appmap);
        LOGGER_CLEAN(w->logger);
        xmm_free(w, sizeof(WTABLE));
    }
    return ;
}
Example #4
0
/*  clean */
void qindex_clean(QINDEX *qindex)
{
    if(qindex)
    {
        if(qindex->state) munmap(qindex->state, sizeof(QSTATE));
        if(qindex->qstatefd > 0)close(qindex->qstatefd);
        if(qindex->db) db_clean(PDB(qindex->db));
        if(qindex->update) db_clean(PDB(qindex->update));
        MUTEX_DESTROY(qindex->mutex);
        if(qindex->xdict){mmtrie_clean(qindex->xdict);}
        if(qindex->namemap){mmtrie_clean(qindex->namemap);}
        if(qindex->idmap){mmtree64_close(qindex->idmap);}
        if(qindex->queue){iqueue_clean(qindex->queue);}
        if(qindex->mmqueue){mmqueue_clean(MMQ(qindex->mmqueue));}
        if(qindex->xpacketio.map) munmap(qindex->xpacketio.map, qindex->xpacketio.size);
        if(qindex->xpacketio.fd) close(qindex->xpacketio.fd);
        if(qindex->bstermio.map) munmap(qindex->bstermio.map, qindex->bstermio.size);
        if(qindex->bstermio.fd) close(qindex->bstermio.fd);
        if(qindex->map) mmtrie_clean(qindex->map);
        if(qindex->logger){LOGGER_CLEAN(qindex->logger);}
        xmm_free(qindex, sizeof(QINDEX));
    }
    return ;
}