| 131 | } |
| 132 | |
| 133 | bool check_timer::finish(bool graceful) |
| 134 | { |
| 135 | if (!graceful || checkers_.empty()) { |
| 136 | return true; |
| 137 | } |
| 138 | |
| 139 | // ��Ҫ�ȴ����м�����ӹر� |
| 140 | |
| 141 | if (id_ >= 0) { |
| 142 | handle_.del_timer(this, id_); |
| 143 | id_ = -1; |
| 144 | keep_timer(false); |
| 145 | } |
| 146 | |
| 147 | // ������ǰ�������ڼ��Ĵ��ڷ�����״̬�����Ӽ������첽�ر�֮ |
| 148 | |
| 149 | for (std::vector<check_client*>::iterator it = checkers_.begin(); |
| 150 | it != checkers_.end(); ++it) { |
| 151 | |
| 152 | // ��������ⷽʽ����ü�����������״̬������ֱ�ӹر� |
| 153 | if (!(*it)->blocked()) { |
| 154 | (*it)->close(); |
| 155 | } |
| 156 | } |
| 157 | |
| 158 | return false; |
| 159 | } |
| 160 | |
| 161 | } // namespace acl |