| 253 | } |
| 254 | |
| 255 | KThread* KSystem::getThreadById(U32 threadId) { |
| 256 | KThread* result = nullptr; |
| 257 | BOXEDWINE_CRITICAL_SECTION_WITH_CONDITION(processesCond); |
| 258 | |
| 259 | for (auto& p : processes) { |
| 260 | const KProcessPtr& process = p.value; |
| 261 | if (process) { |
| 262 | result = process->getThreadById(threadId); |
| 263 | } |
| 264 | if (result) { |
| 265 | break; |
| 266 | } |
| 267 | } |
| 268 | return result; |
| 269 | } |
| 270 | |
| 271 | U32 KSystem::tgkill(U32 threadGroupId, U32 threadId, U32 signal) { |
| 272 | KThread* result = KSystem::getThreadById(threadId); |
no outgoing calls
no test coverage detected