Esempio n. 1
0
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);
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
int ShutdownMultiplexer(void)
{
	// Close the EPoll handle.
	close(EpollHandle);

	// Free our events
	vec_deinit(&events);

	return 0;
}
Esempio n. 5
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;
}
Esempio n. 6
0
File: ide.c Progetto: jb55/vpl
void
vpl_ide_destroy(struct vpl_ide *ide) {
  vec_deinit(&ide->vec_wires);
}
Esempio n. 7
0
void BlockRender_Free() {
	vec_deinit(&pendingChunks);
	for (int i = 0; i < BUFFERS_COUNT; i++) free(buffers[i]);
}