diff --git a/core/thread.c b/core/thread.c index b83752e..2f74f01 100644 --- a/core/thread.c +++ b/core/thread.c @@ -331,6 +331,8 @@ int threadUsleep(unsigned long usec) current->state = SLEEPING; current->sleepHaveTimeouted = 0; current->jiffiesSleeping = usecs_to_jiffies(usec); + if (!current->jiffiesSleeping) // sleep at least 1 jiffies + current->jiffiesSleeping = 1; next = threadSelectNext(); assert(next != current); diff --git a/userspace/main_user.c b/userspace/main_user.c index c48db8c..6711c9d 100644 --- a/userspace/main_user.c +++ b/userspace/main_user.c @@ -124,6 +124,7 @@ int func_munmap() static void *print_hello(void *arg) { (void)arg; printf("Hello World from thread %lu\n", gettid()); + usleep(100); return NULL; }