| 62 | } |
| 63 | |
| 64 | void child_thread_work(void* arg) { |
| 65 | auto* current = TaskManagerSingleton::instance().GetCurrentTask(); |
| 66 | uint64_t thread_id = reinterpret_cast<uint64_t>(arg); |
| 67 | if (thread_id == 1) { |
| 68 | g_thread1_pid.store(current->pid); |
| 69 | g_thread1_tgid.store(current->aux->tgid); |
| 70 | } else { |
| 71 | g_thread2_pid.store(current->pid); |
| 72 | g_thread2_tgid.store(current->aux->tgid); |
| 73 | } |
| 74 | g_thread_done++; |
| 75 | while (!g_threads_may_exit.load()) { |
| 76 | (void)sys_sleep(10); |
| 77 | } |
| 78 | sys_exit(0); |
| 79 | } |
| 80 | |
| 81 | void leader_work(void* /*arg*/) { |
| 82 | auto* current = TaskManagerSingleton::instance().GetCurrentTask(); |
nothing calls this directly
no test coverage detected