git://scm.lunaixsky.com
/
lunaix-os.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
841bc2c
)
fix: sleeper issue #13
author
Minep
<zelong56@gmail.com>
Tue, 17 Jan 2023 10:21:03 +0000
(10:21 +0000)
committer
Minep
<zelong56@gmail.com>
Tue, 17 Jan 2023 10:21:03 +0000
(10:21 +0000)
lunaix-os/kernel/process/sched.c
patch
|
blob
|
history
diff --git
a/lunaix-os/kernel/process/sched.c
b/lunaix-os/kernel/process/sched.c
index f0c0a988c97d59c9f30bdff81266ac7cac4aae44..5e882b7df8f4c32fa3ff7757f84be78d215efae4 100644
(file)
--- a/
lunaix-os/kernel/process/sched.c
+++ b/
lunaix-os/kernel/process/sched.c
@@
-213,7
+213,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;
- 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;