Mercurial > minori
comparison dep/animone/src/fd/proc.cc @ 373:fbc8c617de80
dep/animone: exception handling is the worst c++ anti-feature
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 11:03:05 -0400 |
parents | f81bed4e04ac |
children |
comparison
equal
deleted
inserted
replaced
372:a65a43766b22 | 373:fbc8c617de80 |
---|---|
153 return false; | 153 return false; |
154 | 154 |
155 for (const auto& pid : pids) { | 155 for (const auto& pid : pids) { |
156 const std::filesystem::path path = std::filesystem::path(PROC_LOCATION) / std::to_string(pid) / "fd"; | 156 const std::filesystem::path path = std::filesystem::path(PROC_LOCATION) / std::to_string(pid) / "fd"; |
157 | 157 |
158 for (const auto& dir : std::filesystem::directory_iterator{path}) { | 158 try { |
159 if (!AreFlagsOk(pid, util::StringToInt(dir.path().stem()))) | 159 for (const auto& dir : std::filesystem::directory_iterator{path}) { |
160 continue; | 160 if (!AreFlagsOk(pid, util::StringToInt(dir.path().stem()))) |
161 continue; | |
161 | 162 |
162 std::string name; | 163 std::string name; |
163 if (!GetFilenameFromFd(dir.path(), name)) | 164 if (!GetFilenameFromFd(dir.path(), name)) |
164 continue; | 165 continue; |
165 | 166 |
166 if (!IsRegularFile(name)) | 167 if (!IsRegularFile(name)) |
167 continue; | 168 continue; |
168 | 169 |
169 if (IsSystemFile(name)) | 170 if (IsSystemFile(name)) |
170 continue; | 171 continue; |
171 | 172 |
172 if (!open_file_proc({pid, name})) | 173 if (!open_file_proc({pid, name})) |
173 return false; | 174 return false; |
175 } | |
176 } catch (std::filesystem::filesystem_error &fs_error) { | |
177 /* I hate C++ */ | |
178 continue; | |
174 } | 179 } |
175 } | 180 } |
176 return true; | 181 return true; |
177 } | 182 } |
178 | 183 |