Merge branch 'master' into prog-loader
[lunaix-os.git] / lunaix-os / kernel / process / sched.c
index ade13b31c6414f4e1e1588b26645f255475f2c6c..edde8bc79f54f9c677207fce9813f5e79a88a6fa 100644 (file)
@@ -215,7 +215,10 @@ __DEFINE_LXSYSCALL1(unsigned int, sleep, unsigned int, seconds)
 
     struct proc_info* root_proc = sched_ctx._procs[0];
     __current->sleep.wakeup_time = clock_systime() + seconds * 1000;
 
     struct proc_info* root_proc = sched_ctx._procs[0];
     __current->sleep.wakeup_time = clock_systime() + seconds * 1000;
-    llist_append(&root_proc->sleep.sleepers, &__current->sleep.sleepers);
+
+    if (llist_empty(&__current->sleep.sleepers)) {
+        llist_append(&root_proc->sleep.sleepers, &__current->sleep.sleepers);
+    }
 
     __current->intr_ctx.registers.eax = seconds;
 
 
     __current->intr_ctx.registers.eax = seconds;