static void StopEventHandler(KonohaContext *kctx) { ResetSignal(kctx); struct EventContext *eventContext = ((KonohaFactory *)kctx->platApi)->eventContext; LocalQueue_Free(kctx, eventContext->queue); PLATAPI free_i(eventContext); }
int main (void) { instruction *prog = parse_iter(); interpret(optimize(prog)); //interpret(prog); free_i(prog); return 0; }
static void kFileStatus_Free(KonohaContext *kctx, kObject *o) { kFileStatus *stat = (kFileStatus *)o; if(stat->stat != NULL) { PLATAPI free_i(stat->stat); stat->stat = NULL; } }
static void free_i(instruction *prog) { while (prog) { if (prog->opcode == LOOP_START) free_i(prog->loop); instruction *t = prog; prog = prog->next; free(t); } }
static void StopEventHandler(KonohaContext *kctx, void *args) { KonohaFactory *factory = (KonohaFactory *)kctx->platApi; struct EventContext *eventContext = factory->EventModule.eventContext; if(eventContext != NULL) { eventContext->isWaiting = false; pthread_cond_signal(&eventContext->cond); pthread_mutex_destroy(&eventContext->lock); pthread_cond_destroy(&eventContext->cond); LocalQueue_Free(kctx, eventContext->queue); evhttp_free(eventContext->httpd); event_base_free(eventContext->base); PLATAPI free_i(eventContext); factory->EventModule.eventContext = NULL; } }
static void LocalQueue_Free(KonohaContext *kctx, LocalQueue *queue) { PLATAPI free_i(queue->list); PLATAPI free_i(queue); }