| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
the idea is to make libtf completely multi-threaded. meaning each
fiber can be running concurrently in separate thread. quite a bit
of framework is added for this and some atomic helpers are already
introduced. however, io polling is busy polling now (will be soon
in own thread) and timeouts are still more or less broken. oh, and
the multithreading core is not there yet. basically we are currently
mostly broken ;)
|
|
|
|
| |
use it for heaps and fiber stacks.
|
|
|
|
| |
so we can in future have more polling frameworks than epoll.
|
|
|
|
|
| |
debugging looks now better. there was also some valgrind issues
that needed attention.
|
| |
|
|
|
|
|
|
|
| |
instead of having per-function argument, use a push/pop mechanism:
- multiple timers inside fiber use only one heap entry
- easy to chain multiple possibly blocking operations inside one
timeout block
|
|
|
|
| |
fixup the internals a bit.
|
|
|
|
|
| |
pretty much untested. also some slight changes to how scheduler is
invoked.
|
|
|
|
|
|
| |
some scetching of i/o api, and implement basic read and write
functionality. integrate polling to scheduler and an epoll based
polling mechanism.
|
|
|
|
|
| |
internally put sleepers to d-ary heap based priority queue. the
heap value is compared with overflow.
|
|
libtf is to be user-space cooperative threading library similar
to State Threads (http://state-threads.sourceforge.net/), but
with additional support for multiple cores, using better
algorithms and taking advantage of new Linux kernel syscalls
such as eventfd, signalfd and epoll (edge-triggered mode).
Initial implementation has setjmp based user-space context
switching and trivial testcase. Works on Linux/x86.
TFbuild uses ideas from different build systems, namely Kbuild,
but it's inner workings are quite different. All build files are
included (using macro trickery) instead of recursive making. Thus
the build dependency graph is complete and should yield good make
performance. Also parallel stuff should work.
|