agoo_server_setup(agooErr err) {
    memset(&agoo_server, 0, sizeof(struct _agooServer));
    pthread_mutex_init(&agoo_server.up_lock, 0);
    agoo_server.up_list = NULL;
    agoo_server.gsub_list = NULL;
    agoo_server.max_push_pending = 32;

    if (AGOO_ERR_OK != agoo_pages_init(err) ||
	AGOO_ERR_OK != agoo_queue_multi_init(err, &agoo_server.con_queue, 1024, false, true) ||
	AGOO_ERR_OK != agoo_queue_multi_init(err, &agoo_server.eval_queue, 1024, true, true)) {
	return err->code;
    }
    long	i;

    agoo_server.loop_max = 4;
    if (0 < (i = sysconf(_SC_NPROCESSORS_ONLN))) {
	i = (int)(i * agoo_io_loop_ratio);
	if (1 >= i) {
	    i = 1;
	}
	agoo_server.loop_max = (int)i;
    }
    return AGOO_ERR_OK;
}
agoo_server_setup(agooErr err) {
    memset(&agoo_server, 0, sizeof(struct _agooServer));
    pthread_mutex_init(&agoo_server.up_lock, 0);
    agoo_server.up_list = NULL;
    agoo_server.gsub_list = NULL;
    agoo_server.max_push_pending = 32;

    if (AGOO_ERR_OK != agoo_pages_init(err) ||
	AGOO_ERR_OK != agoo_queue_multi_init(err, &agoo_server.con_queue, 1024, false, true) ||
	AGOO_ERR_OK != agoo_queue_multi_init(err, &agoo_server.eval_queue, 1024, true, true)) {
	return err->code;
    }
    long	i;

    agoo_server.loop_max = 4;
    if (0 < (i = sysconf(_SC_NPROCESSORS_ONLN))) {
	i = (int)(i * agoo_io_loop_ratio);
	if (1 >= i) {
	    i = 1;
	}
	agoo_server.loop_max = (int)i;
    }
    return AGOO_ERR_OK;
}