待つわけじゃないの?
cache_sz = connection_pool_size < ThreadsPerChild とすると、
なきゃぁないで、ae->sd = JK_INVALID_SOCKETになってエラーとちゃうんか?
セマフォ使って、空きがなきゃ待つとかって作りでも無いっぽいし。
static void ajp_next_connection(ajp_endpoint_t *ae, jk_logger_t *l) { int rc; ajp_worker_t *aw = ae->worker; jk_sock_t sock = ae->sd; /* Mark existing endpoint socket as closed */ ae->sd = JK_INVALID_SOCKET; JK_ENTER_CS(&aw->cs, rc); if (rc) { unsigned int i; for (i = 0; i < aw->ep_cache_sz; i++) { /* Find cache slot with usable socket */ if (aw->ep_cache[i] && IS_VALID_SOCKET(aw->ep_cache[i]->sd)) { ae->sd = aw->ep_cache[i]->sd; aw->ep_cache[i]->sd = JK_INVALID_SOCKET; break; } } JK_LEAVE_CS(&aw->cs, rc); } /* Close previous socket */ if (IS_VALID_SOCKET(sock)) jk_close_socket(sock); }