Ejemplo n.º 1
0
void li_job_queue_init(liJobQueue* jq, liEventLoop *loop) {
	li_event_prepare_init(loop, &jq->prepare_watcher, job_queue_prepare_cb);
	li_event_async_init(loop, &jq->async_queue_watcher, job_async_queue_cb);
	li_event_timer_init(loop, &jq->queue_watcher, job_queue_watcher_cb);

	/* job queue */
	g_queue_init(&jq->queue);
	jq->async_queue = g_async_queue_new();
}
Ejemplo n.º 2
0
static balancer* balancer_new(liWorker *wrk, liPlugin *p, balancer_method method) {
	balancer *b = g_slice_new0(balancer);
	b->wrk = wrk;
	b->lock = g_mutex_new();
	b->backends = g_array_new(FALSE, TRUE, sizeof(backend));
	b->method = method;
	b->state = BAL_ALIVE;
	b->p = p;

	b->backlog_limit = -1;

	li_event_timer_init(&wrk->loop, &b->backlog_timer, balancer_timer_cb);
	li_event_set_keep_loop_alive(&b->backlog_timer, FALSE);

	li_event_async_init(&wrk->loop, &b->async, balancer_async_cb);

	return b;
}