コード例 #1
0
ファイル: ez_epoll.c プロジェクト: ezzuodp/c_util
static int ezApiCreate(ezEventLoop * eventLoop)
{
	ezApiState *state = (ezApiState *) ez_malloc(sizeof(ezApiState));

	if (!state)
		return AE_ERR;
	state->events =
	    (struct epoll_event *)ez_malloc(sizeof(struct epoll_event) * eventLoop->setsize);
	if (!state->events) {
		ez_free(state);
		return AE_ERR;
	}
	state->epfd = epoll_create(1024);	/* 1024 is just a hint for the kernel */
	if (state->epfd == -1) {
		ez_free(state->events);
		ez_free(state);
		return AE_ERR;
	}

	state->evfd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
	if (state->evfd == -1) {
		ez_free(state->events);
		ez_free(state);
		return AE_ERR;
	}

	eventLoop->apidata = state;
	return AE_OK;
}
コード例 #2
0
ファイル: magic.c プロジェクト: js42721/primecounter
u8 *magic_new(u32 *size)
{
    prime p;
    u8 *m;
    u32 lcm;
    u32 i;

    lcm = 1;
    for (i = 1; i <= MAGIC_PRIMES; ++i)
        lcm *= wheel[i];

    m = ez_malloc(lcm);
    memset(m, 0xff, lcm);

    for (i = 1; i <= MAGIC_PRIMES; ++i) {
        init_prime(&p, 0, i, 0, 0);
        mark_multiples(&p, m, lcm);
    }

    *size = lcm;

    return m;
}