[MAJOR] replaced rbtree with ul2tree.
The rbtree-based wait queue consumes a lot of CPU. Use the ul2tree
instead. Lots of cleanups and code reorganizations made it possible
to reduce the task struct and simplify the code a bit.
diff --git a/src/stream_sock.c b/src/stream_sock.c
index 2a7275b..77eda02 100644
--- a/src/stream_sock.c
+++ b/src/stream_sock.c
@@ -156,7 +156,7 @@
else
tv_eternity(&b->rex);
- task_wakeup(&rq, fdtab[fd].owner);
+ task_wakeup(fdtab[fd].owner);
}
fdtab[fd].ev &= ~FD_POLL_RD;
@@ -291,7 +291,7 @@
}
}
- task_wakeup(&rq, fdtab[fd].owner);
+ task_wakeup(fdtab[fd].owner);
fdtab[fd].ev &= ~FD_POLL_WR;
return retval;
}