| 155 | } |
| 156 | |
| 157 | void EraseStale(const TInstant& maxAge) noexcept { |
| 158 | TSockets toDelete; |
| 159 | |
| 160 | { |
| 161 | TGuard<TMutex> guard(Mutex_); |
| 162 | |
| 163 | for (TSockets::TIterator it = Pool_.Begin(); it != Pool_.End();) { |
| 164 | if (it->LastTouch() < maxAge) { |
| 165 | toDelete.PushBack(&*(it++)); |
| 166 | } else { |
| 167 | ++it; |
| 168 | } |
| 169 | } |
| 170 | } |
| 171 | } |
| 172 | |
| 173 | TPooledSocket Get(TConnectData* conn) { |
| 174 | TPooledSocket ret; |