示例#1
0
static int crfsuite_train_release(crfsuite_trainer_t* self)
{
    int count = crfsuite_interlocked_decrement(&self->nref);
    if (count == 0) {
        crfsuite_train_delete(self);
    }
    return count;
}
示例#2
0
static int model_release(crfsuite_model_t* model)
{
    int count = crfsuite_interlocked_decrement(&model->nref);
    if (count == 0) {
        /* This instance is being destroyed. */
        model_internal_t* internal = (model_internal_t*)model->internal;
        crf1dt_delete((crf1dt_t*)internal->tagger->internal);
        free(internal->tagger);
        free(internal->labels);
        free(internal->attrs);
        crf1dm_close(internal->crf1dm);
        free(internal);
        free(model);
    }
    return count;
}