예제 #1
0
kqt_Handle kqt_new_Handle(void)
{
    Handle* handle = memory_alloc_item(Handle);
    if (handle == NULL)
    {
        Handle_set_error(0, ERROR_MEMORY, "Couldn't allocate memory");
        return 0;
    }

    if (!Handle_init(handle))
    {
        memory_free(handle);
        return 0;
    }

    kqt_Handle id = add_handle(handle);
    if (id == 0)
    {
        Handle_deinit(handle);
        memory_free(handle);
        return 0;
    }

    return id;
}
예제 #2
0
Reactor Reactor_init(Reactor self) {
	self->signal = 0;
//self->wl = INIT_WATCHER_NUM;
	int kqfd = kqueue();
	if(kqfd == -1) {
		// TODO
	}
	Handle_init(&self->poll, kqfd, H_POLL);
	return self;
}