Example #1
0
int ukey_startup(ukey_uint64 twepoch, int worker_id, int datacenter_id)
{
    /* _ctx = malloc(sizeof(ukey_context_t)); */

    locker = locker_open(UKEY_LOCK_FILE);
    if (locker == -1) {
        return -1;
    }

    _ctx = (ukey_context_t *)mmap(NULL, sizeof(ukey_context_t),
              PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANON, -1, 0);
    if (!_ctx) {
        locker_destroy(locker);
        return -1;
    }

    _ctx->twepoch = twepoch;
    _ctx->worker_id = worker_id;
    _ctx->datacenter_id = datacenter_id;

    _ctx->sequence = 0;
    _ctx->last_timestamp = -1;

    _ctx->worker_id_bits = 5;
    _ctx->datacenter_id_bits = 5;
    _ctx->sequence_bits = 12;

    _ctx->worker_id_shift = _ctx->sequence_bits;
    _ctx->datacenter_id_shift = _ctx->sequence_bits + _ctx->worker_id_bits;
    _ctx->timestamp_left_shift = _ctx->sequence_bits + _ctx->worker_id_bits + 
          _ctx->datacenter_id_bits;
    _ctx->sequence_mask = -1 ^ (-1 << _ctx->sequence_bits);

    return 0;
}
Example #2
0
File: router.c Project: ireader/sdk
void router_destroy(struct router_t* router)
{
	if (router->rbtree.node)
		rbtree_destroy(router->rbtree.node);
	locker_destroy(&router->locker);
	free(router);
}
Example #3
0
static void dlist_destroy_locker(DList* thiz)
{
	if(thiz->locker != NULL)
	{
		locker_unlock(thiz->locker);
		locker_destroy(thiz->locker);
	}

	return;
}
Example #4
0
int rtp_queue_destroy(void* queue)
{
	struct rtp_queue *q;
	struct rtp_frame *frame, *next;

	if(!queue) return -1;
	q = (struct rtp_queue *)queue;
	for(frame = q->head; frame; frame = next)
	{
		next = frame->next;
		free(frame);
	}

	locker_destroy(&q->locker);
	free(q);
	return 0;
}
Example #5
0
void ukey_shutdown()
{
    locker_destroy(locker);
    munmap(_ctx, sizeof(ukey_context_t));
}