static void stream_destroy(dyad_Stream *stream) { dyad_Event e; dyad_Stream **next; /* Close socket */ if (stream->sockfd != INVALID_SOCKET) { close(stream->sockfd); } /* Emit destroy event */ e = createEvent(DYAD_EVENT_DESTROY); e.msg = "the stream has been destroyed"; stream_emitEvent(stream, &e); /* Remove from list and decrement count */ next = &dyad_streams; while (*next != stream) { next = &(*next)->next; } *next = stream->next; dyad_streamCount--; /* Destroy and free */ vec_deinit(&stream->listeners); vec_deinit(&stream->lineBuffer); vec_deinit(&stream->writeBuffer); dyad_free(stream->address); dyad_free(stream); }
int iter_bson(const bson_t *bson, ERL_NIF_TERM *out, decode_state *ds) { vec_term_t vec; bson_iter_t iter; int ret = 0; vec_init(&vec); ds->vec = &vec; if(!bson_iter_init(&iter, bson)) { goto finish; } if(bson_iter_visit_all(&iter, &decode_visitors, ds) || iter.err_off) { goto finish; } if(!make_document(ds->env, ds->vec, out, ds->return_maps)) { goto finish; } ret = 1; finish: vec_deinit(&vec); ds->vec = NULL; return ret; }
int main(void) { int i, num_jobs; process_pool *pool; vec(job_t) cq; vec_init(&cq); num_jobs = 10000; for (i = 0; i < num_jobs; i++) { job_t jobs = {"Yhm, Forever!", i}; vec_push(&cq, jobs); } printf("Master[%d] Runnig\n", getpid()); process_pool_envinit(); pool = process_pool_new(3); process_pool_start(pool); for (i= 0; i < num_jobs; i++) { process_pool_dispatch(pool, &cq.data[i]); } wait(NULL); vec_deinit(&cq); return 0; }
int ShutdownMultiplexer(void) { // Close the EPoll handle. close(EpollHandle); // Free our events vec_deinit(&events); return 0; }
static bool decode_visit_array(const bson_iter_t *iter, const char *key, const bson_t *v_array, void *data) { decode_state *ds = data; decode_state cs; vec_term_t vec; bson_iter_t child; ERL_NIF_TERM out; LOG("visit array: %s \r\n", key); if(ds->depth >= MAX_DEPTHS) { return true; } init_child_state(ds, &cs); cs.keys = false; cs.depth = ds->depth + 1; if(!bson_iter_init(&child, v_array)) { return true; } vec_init(&vec); cs.vec = &vec; if(bson_iter_visit_all(&child, &decode_visitors, &cs) || child.err_off) { vec_deinit(&vec); return true; } out = enif_make_list_from_array(cs.env, cs.vec->data, cs.vec->length); vec_deinit(&vec); vec_push(ds->vec, out); return false; }
void vpl_ide_destroy(struct vpl_ide *ide) { vec_deinit(&ide->vec_wires); }
void BlockRender_Free() { vec_deinit(&pendingChunks); for (int i = 0; i < BUFFERS_COUNT; i++) free(buffers[i]); }