Lines Matching refs:pool
201 static void evrpc_pool_schedule(struct evrpc_pool *pool);
510 struct evrpc_pool *pool = mm_calloc(1, sizeof(struct evrpc_pool)); in evrpc_pool_new() local
511 if (pool == NULL) in evrpc_pool_new()
514 TAILQ_INIT(&pool->connections); in evrpc_pool_new()
515 TAILQ_INIT(&pool->requests); in evrpc_pool_new()
517 TAILQ_INIT(&pool->paused_requests); in evrpc_pool_new()
519 TAILQ_INIT(&pool->input_hooks); in evrpc_pool_new()
520 TAILQ_INIT(&pool->output_hooks); in evrpc_pool_new()
522 pool->base = base; in evrpc_pool_new()
523 pool->timeout = -1; in evrpc_pool_new()
525 return (pool); in evrpc_pool_new()
538 evrpc_pool_free(struct evrpc_pool *pool) in evrpc_pool_free() argument
546 while ((request = TAILQ_FIRST(&pool->requests)) != NULL) { in evrpc_pool_free()
547 TAILQ_REMOVE(&pool->requests, request, next); in evrpc_pool_free()
551 while ((pause = TAILQ_FIRST(&pool->paused_requests)) != NULL) { in evrpc_pool_free()
552 TAILQ_REMOVE(&pool->paused_requests, pause, next); in evrpc_pool_free()
556 while ((connection = TAILQ_FIRST(&pool->connections)) != NULL) { in evrpc_pool_free()
557 TAILQ_REMOVE(&pool->connections, connection, next); in evrpc_pool_free()
561 while ((hook = TAILQ_FIRST(&pool->input_hooks)) != NULL) { in evrpc_pool_free()
562 r = evrpc_remove_hook(pool, EVRPC_INPUT, hook); in evrpc_pool_free()
566 while ((hook = TAILQ_FIRST(&pool->output_hooks)) != NULL) { in evrpc_pool_free()
567 r = evrpc_remove_hook(pool, EVRPC_OUTPUT, hook); in evrpc_pool_free()
571 mm_free(pool); in evrpc_pool_free()
580 evrpc_pool_add_connection(struct evrpc_pool *pool, in evrpc_pool_add_connection() argument
584 TAILQ_INSERT_TAIL(&pool->connections, connection, next); in evrpc_pool_add_connection()
589 if (pool->base != NULL) in evrpc_pool_add_connection()
590 evhttp_connection_set_base(connection, pool->base); in evrpc_pool_add_connection()
597 evhttp_connection_set_timeout(connection, pool->timeout); in evrpc_pool_add_connection()
604 if (TAILQ_FIRST(&pool->requests) != NULL) { in evrpc_pool_add_connection()
606 TAILQ_FIRST(&pool->requests); in evrpc_pool_add_connection()
607 TAILQ_REMOVE(&pool->requests, request, next); in evrpc_pool_add_connection()
613 evrpc_pool_remove_connection(struct evrpc_pool *pool, in evrpc_pool_remove_connection() argument
616 TAILQ_REMOVE(&pool->connections, connection, next); in evrpc_pool_remove_connection()
620 evrpc_pool_set_timeout(struct evrpc_pool *pool, int timeout_in_secs) in evrpc_pool_set_timeout() argument
623 TAILQ_FOREACH(evcon, &pool->connections, next) { in evrpc_pool_set_timeout()
626 pool->timeout = timeout_in_secs; in evrpc_pool_set_timeout()
638 evrpc_pool_find_connection(struct evrpc_pool *pool) in evrpc_pool_find_connection() argument
641 TAILQ_FOREACH(connection, &pool->connections, next) { in evrpc_pool_find_connection()
663 struct evrpc_pool *pool = ctx->pool; in evrpc_schedule_request() local
678 if (TAILQ_FIRST(&pool->output_hooks) != NULL) { in evrpc_schedule_request()
684 hook_res = evrpc_process_hooks(&pool->output_hooks, in evrpc_schedule_request()
692 if (evrpc_pause_request(pool, ctx, in evrpc_schedule_request()
723 struct evrpc_pool *pool = ctx->pool; in evrpc_schedule_request_closure() local
735 if (pool->timeout > 0) { in evrpc_schedule_request_closure()
741 tv.tv_sec = pool->timeout; in evrpc_schedule_request_closure()
802 struct evrpc_pool *pool = ctx->pool; in evrpc_make_request() local
805 evtimer_assign(&ctx->ev_timeout, pool->base, evrpc_request_timeout, ctx); in evrpc_make_request()
808 EVUTIL_ASSERT(TAILQ_FIRST(&pool->connections) != NULL); in evrpc_make_request()
814 TAILQ_INSERT_TAIL(&pool->requests, ctx, next); in evrpc_make_request()
816 evrpc_pool_schedule(pool); in evrpc_make_request()
824 struct evrpc_pool *pool, void *request, void *reply, in evrpc_make_request_ctx() argument
837 ctx->pool = pool; in evrpc_make_request_ctx()
863 struct evrpc_pool *pool = ctx->pool; in evrpc_reply_done() local
877 if (TAILQ_FIRST(&pool->input_hooks) != NULL) { in evrpc_reply_done()
881 hook_res = evrpc_process_hooks(&pool->input_hooks, in evrpc_reply_done()
897 evrpc_pause_request(pool, ctx, in evrpc_reply_done()
917 struct evrpc_pool *pool = ctx->pool; in evrpc_reply_done_closure() local
950 evrpc_pool_schedule(pool); in evrpc_reply_done_closure()
954 evrpc_pool_schedule(struct evrpc_pool *pool) in evrpc_pool_schedule() argument
956 struct evrpc_request_wrapper *ctx = TAILQ_FIRST(&pool->requests); in evrpc_pool_schedule()
963 if ((evcon = evrpc_pool_find_connection(pool)) != NULL) { in evrpc_pool_schedule()
964 TAILQ_REMOVE(&pool->requests, ctx, next); in evrpc_pool_schedule()
1079 evrpc_send_request_generic(struct evrpc_pool *pool, in evrpc_send_request_generic() argument
1090 ctx = evrpc_make_request_ctx(pool, request, reply, in evrpc_send_request_generic()
1154 return (ctx->pool); in evrpc_request_get_pool()
1159 struct evrpc_pool *pool) in evrpc_request_set_pool() argument
1161 ctx->pool = pool; in evrpc_request_set_pool()