コード例 #1
0
ファイル: opque.c プロジェクト: PerilousApricot/lstore-gop
void opque_free(opque_t *opq, int mode)
{
    que_data_t *q = &(opq->qd);

    log_printf(15, "qid=%d nfin=%d nlist=%d nfailed=%d\n", gop_id(&(opq->op)), stack_size(q->finished), stack_size(q->list), stack_size(q->failed));

    lock_opque(&(opq->qd));  //** Lock it to make sure Everything is finished and safe to free

    //** Free the stacks
    free_stack(q->failed, 0);
    free_finished_stack(q->finished, mode);
    free_list_stack(q->list, mode);

    unlock_opque(&(opq->qd));  //** Has to be unlocked for gop_generic_free to work cause it also locks it
    gop_generic_free(opque_get_gop(opq), mode);

    if (mode == OP_DESTROY) free(opq);
}
コード例 #2
0
ファイル: thread_pool_config.c プロジェクト: accre/lstore
void _tp_op_free(gop_op_generic_t *gop, int mode)
{
    gop_thread_pool_op_t *top = gop_get_tp(gop);
    int id = gop_id(gop);

    log_printf(15, "_tp_op_free: mode=%d gid=%d gop=%p\n", mode, gop_id(gop), gop);
    tbx_log_flush();

    if (top->my_op_free != NULL) top->my_op_free(top->arg);

    gop_generic_free(gop, OP_FINALIZE);  //** I free the actual op

    if (top->dop.cmd.hostport) free(top->dop.cmd.hostport);

    if (mode == OP_DESTROY) free(gop->free_ptr);
    log_printf(15, "_tp_op_free: gid=%d END\n", id);
    tbx_log_flush();

}
コード例 #3
0
ファイル: gop.c プロジェクト: hellermf/lstore-release
void _gop_dummy_free(op_generic_t *gop, int mode)
{
    gop_generic_free(gop, mode);  //** I free the actual op

    if (mode == OP_DESTROY) free(gop);
}