x

上级 04cb343a
...@@ -45,7 +45,6 @@ main(int ac, char **av) ...@@ -45,7 +45,6 @@ main(int ac, char **av)
initwq(); initwq();
sleep(5); sleep(5);
test(); test();
for (;;);
exitwq(); exitwq();
printf("all done!\n"); printf("all done!\n");
return 0; return 0;
......
...@@ -9,6 +9,10 @@ size_t wq_size(void); ...@@ -9,6 +9,10 @@ size_t wq_size(void);
void initwq(void); void initwq(void);
void exitwq(void); void exitwq(void);
#if defined(XV6_KERNEL)
int uwq_trywork(void);
#endif
struct work { struct work {
virtual void run() = 0; virtual void run() = 0;
}; };
......
...@@ -118,6 +118,8 @@ idleloop(void) ...@@ -118,6 +118,8 @@ idleloop(void)
idlem->heir = p; idlem->heir = p;
} }
worked = uwq_trywork();
worked = wq_trywork(); worked = wq_trywork();
// If we are no longer the idle thread, exit // If we are no longer the idle thread, exit
if (worked && idlem->cur != myproc()) if (worked && idlem->cur != myproc())
......
...@@ -79,6 +79,14 @@ exitwq(void) ...@@ -79,6 +79,14 @@ exitwq(void)
wqarch_exit(); wqarch_exit();
} }
#if defined(XV6_KERNEL)
int
uwq_trywork(void)
{
return 0;
}
#endif
// //
// wq // wq
// //
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论