| 197 | // --------------------------------------------------------------------------- |
| 198 | |
| 199 | void child_thread_exit_work(void* arg) { |
| 200 | uint64_t thread_id = reinterpret_cast<uint64_t>(arg); |
| 201 | |
| 202 | klog::Info("Thread {}: starting", thread_id); |
| 203 | |
| 204 | for (int i = 0; i < 3; ++i) { |
| 205 | g_exit_test_counter++; |
| 206 | klog::Debug("Thread {}: working, iter={}", thread_id, i); |
| 207 | (void)sys_sleep(30); |
| 208 | } |
| 209 | |
| 210 | klog::Info("Thread {}: exiting", thread_id); |
| 211 | sys_exit(static_cast<int>(thread_id)); |
| 212 | } |
| 213 | |
| 214 | void test_thread_exit(void* /*arg*/) { |
| 215 | klog::Info("=== Thread Exit Test ==="); |