#include <lib/print.h> #include <lib/syscall.h> #include <lib/thread.h> #define PRIO 255 #define INFO 233 bool running = true; void *thread_routine(void *arg) { u64 thread_id = (u64) arg; printf("Hello, I am thread %u\n", thread_id); while (running) { } /* usys_exit: just de-schedule itself without reclaiming the resource */ usys_exit(0); return 0; } int main(int argc, char *argv[]) { int child_thread_cap; child_thread_cap = create_thread(thread_routine, 0, PRIO, 0); if (child_thread_cap < 0) printf("Create thread failed, return %d\n", child_thread_cap); usys_yield(); printf("Successfully regain the control!\n"); return 0; }