| 211 | } |
| 212 | |
| 213 | void LogSources::UpdateSources() |
| 214 | { |
| 215 | assert(m_executor.IsExecutorThread()); |
| 216 | std::vector<LogSource*> sources; |
| 217 | { |
| 218 | std::lock_guard<std::mutex> lock(m_mutex); |
| 219 | for (auto& pSource : m_sources) |
| 220 | { |
| 221 | sources.push_back(pSource.get()); |
| 222 | } |
| 223 | } |
| 224 | |
| 225 | for (auto& pSource : sources) |
| 226 | { |
| 227 | if (pSource->AtEnd()) |
| 228 | { |
| 229 | pSource->Abort(); |
| 230 | m_update(); |
| 231 | InternalRemove(pSource); |
| 232 | } |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | void LogSources::OnProcessEnded(DWORD pid, HANDLE handle) |
| 237 | { |
nothing calls this directly
no test coverage detected