fix double sleep bug (better now, ymmv) - vx32 - Local 9vx git repository for patches.
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) commit 9ac6ff2beb9d12729f016c4b397293bc4aa8bb61
(DIR) parent 5d40ba2dbc1438674d24f8f1b0082f3cc6c105d6
(HTM) Author: Jesus Galan Lopez (yiyus) <yiyu.jgl@gmail.com>
Date: Fri, 2 Jul 2010 08:24:23 +0200
fix double sleep bug (better now, ymmv)
Diffstat:
src/9vx/sched.c | 8 ++++++++
1 file changed, 8 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/src/9vx/sched.c b/src/9vx/sched.c
@@ -158,6 +158,14 @@ runproc(void)
m->machno, p->pid, p->text, kprocq.n, nrunproc);
unlock(&kprocq.lk);
punlock(&run);
+ /*
+ * To avoid the "double sleep" bug
+ * Full history begins at:
+ * http://9fans.net/archive/2010/06/71
+ * Who knows where it will end
+ */
+ while (p->mach)
+ sched_yield();
return p;
}