Lines Matching refs:p

621     mcp_pool_t *p = luaL_checkudata(L, -1, "mcp.pool");  in mcplib_pool_gc()  local
623 mcp_gobj_finalize(&p->g); in mcplib_pool_gc()
625 luaL_unref(L, LUA_REGISTRYINDEX, p->phc_ref); in mcplib_pool_gc()
627 for (int x = 0; x < p->pool_be_total; x++) { in mcplib_pool_gc()
628 if (p->pool[x].ref) { in mcplib_pool_gc()
629 luaL_unref(L, LUA_REGISTRYINDEX, p->pool[x].ref); in mcplib_pool_gc()
688 static void _mcplib_pool_dist(lua_State *L, mcp_pool_t *p) { in _mcplib_pool_dist() argument
696 lua_createtable(L, p->pool_size, 0); // give the new pool table a sizing hint. in _mcplib_pool_dist()
697 for (int x = 1; x <= p->pool_size; x++) { in _mcplib_pool_dist()
698 mcp_backend_t *be = p->pool[x-1].be; in _mcplib_pool_dist()
737 memcpy(&p->phc, phc, sizeof(*phc)); in _mcplib_pool_dist()
740 p->phc_ref = luaL_ref(L, LUA_REGISTRYINDEX); in _mcplib_pool_dist()
746 static void _mcplib_pool_make_be_loop(lua_State *L, mcp_pool_t *p, int offset, proxy_event_thread_t… in _mcplib_pool_make_be_loop() argument
748 for (int x = 1; x <= p->pool_size; x++) { in _mcplib_pool_make_be_loop()
749 mcp_pool_be_t *s = &p->pool[x-1 + (offset * p->pool_size)]; in _mcplib_pool_make_be_loop()
758 if (p->beprefix[0] != '\0') { in _mcplib_pool_make_be_loop()
759 lua_pushstring(L, p->beprefix); in _mcplib_pool_make_be_loop()
762 if (p->use_iothread) { in _mcplib_pool_make_be_loop()
780 bew->be->use_io_thread = p->use_iothread; in _mcplib_pool_make_be_loop()
794 static void _mcplib_pool_make_be(lua_State *L, mcp_pool_t *p) { in _mcplib_pool_make_be() argument
795 if (p->use_iothread) { in _mcplib_pool_make_be()
797 _mcplib_pool_make_be_loop(L, p, 0, ctx->proxy_io_thread); in _mcplib_pool_make_be()
802 _mcplib_pool_make_be_loop(L, p, t->thread_baseid, t->proxy_event_thread); in _mcplib_pool_make_be()
816 mcp_pool_t *p = lua_newuserdatauv(L, plen, 0); in mcplib_pool() local
818 memset(p, 0, plen); in mcplib_pool()
819 p->pool_size = n; in mcplib_pool()
820 p->pool_be_total = n * workers; in mcplib_pool()
821 p->use_iothread = ctx->tunables.use_iothread; in mcplib_pool()
823 p->key_hasher = XXH3_64bits_withSeed; in mcplib_pool()
824 pthread_mutex_init(&p->g.lock, NULL); in mcplib_pool()
825 p->ctx = PROXY_GET_CTX(L); in mcplib_pool()
832 _mcplib_pool_make_be(L, p); in mcplib_pool()
836 _mcplib_pool_dist(L, p); in mcplib_pool()
853 p->use_iothread = true; in mcplib_pool()
855 p->use_iothread = false; in mcplib_pool()
866 memcpy(p->beprefix, bepfx, len); in mcplib_pool()
867 p->beprefix[len+1] = '\0'; in mcplib_pool()
872 _mcplib_pool_make_be(L, p); in mcplib_pool()
877 _mcplib_pool_dist(L, p); in mcplib_pool()
886 _mcplib_pool_dist(L, p); in mcplib_pool()
898 p->key_filter = mcp_key_hash_filter_stop; in mcplib_pool()
900 p->key_filter = mcp_key_hash_filter_tag; in mcplib_pool()
914 memcpy(p->key_filter_conf, conf, len); in mcplib_pool()
915 p->key_filter_conf[len+1] = '\0'; in mcplib_pool()
927 p->key_hasher = phf->func; in mcplib_pool()
940 p->hash_seed = XXH3_64bits(seedstr, seedlen); in mcplib_pool()
947 if (p->phc.selector_func == NULL) { in mcplib_pool()
956 mcp_pool_t *p = pp->main; in mcplib_pool_proxy_gc() local
957 pthread_mutex_lock(&p->g.lock); in mcplib_pool_proxy_gc()
958 p->g.refcount--; in mcplib_pool_proxy_gc()
959 if (p->g.refcount == 0) { in mcplib_pool_proxy_gc()
960 proxy_ctx_t *ctx = p->ctx; in mcplib_pool_proxy_gc()
962 STAILQ_INSERT_TAIL(&ctx->manager_head, &p->g, next); in mcplib_pool_proxy_gc()
966 pthread_mutex_unlock(&p->g.lock); in mcplib_pool_proxy_gc()
972 mcp_pool_t *p = pp->main; in mcplib_pool_proxy_call_helper() local
973 if (p->key_filter) { in mcplib_pool_proxy_call_helper()
974 key = p->key_filter(p->key_filter_conf, key, len, &len); in mcplib_pool_proxy_call_helper()
977 uint64_t hash = p->key_hasher(key, len, p->hash_seed); in mcplib_pool_proxy_call_helper()
978 uint32_t lookup = p->phc.selector_func(hash, p->phc.ctx); in mcplib_pool_proxy_call_helper()
980 assert(p->phc.ctx != NULL); in mcplib_pool_proxy_call_helper()
981 if (lookup >= p->pool_size) { in mcplib_pool_proxy_call_helper()
1540 for (char *p = strtok_r(sarg, ":", &b); in proxy_register_startarg() local
1541 p != NULL; in proxy_register_startarg()
1542 p = strtok_r(NULL, ":", &b)) { in proxy_register_startarg()
1544 char *name = strtok_r(p, "_", &e); in proxy_register_startarg()