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(); }
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; }