| 35 | } |
| 36 | |
| 37 | void keeper_conns::trigger_more() |
| 38 | { |
| 39 | time(&last_trigger_); |
| 40 | |
| 41 | int n = 0; |
| 42 | ACL_RING_ITER iter; |
| 43 | acl_ring_foreach_reverse(iter, &linker_) { |
| 44 | keeper_link* lk = acl_ring_to_appl(iter.ptr, keeper_link, me); |
| 45 | if (!lk->fb->is_idle()) { |
| 46 | // lk->fb->print_status(); |
| 47 | continue; |
| 48 | } |
| 49 | lk->fb->ask_open(); |
| 50 | n++; |
| 51 | if (config_.conn_min > 0 && n >= config_.conn_min) { |
| 52 | break; |
| 53 | } |
| 54 | } |
| 55 | logger_debug(FIBER_DEBUG_KEEPER, 1, "[debug] trigger open count=%d", n); |
| 56 | } |
| 57 | |
| 58 | // this method will be called by keeper_waiter for adding one request task |
| 59 | // for the keeper_conns with one given addr. |