<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libtf/include, branch master</title>
<subtitle>Threadable Fibers, a user-space cooperative threading library
</subtitle>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/'/>
<entry>
<title>libtf: major redesign started</title>
<updated>2010-07-02T17:25:47+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2010-07-02T17:23:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=23b95bf1a15322c2f471b80c06cb65d9b2d2a282'/>
<id>23b95bf1a15322c2f471b80c06cb65d9b2d2a282</id>
<content type='text'>
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 ;)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 ;)
</pre>
</div>
</content>
</entry>
<entry>
<title>mem: add mmap allocator</title>
<updated>2010-03-10T18:11:06+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2010-03-10T18:11:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=0183e33d9a4759764716e771b85e19f7a997b8bd'/>
<id>0183e33d9a4759764716e771b85e19f7a997b8bd</id>
<content type='text'>
use it for heaps and fiber stacks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
use it for heaps and fiber stacks.
</pre>
</div>
</content>
</entry>
<entry>
<title>io: virtualize polling api</title>
<updated>2010-03-10T17:04:26+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2010-03-10T17:04:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=dc34e87746f69994aad893b39ee4cd3dda6e2f7b'/>
<id>dc34e87746f69994aad893b39ee4cd3dda6e2f7b</id>
<content type='text'>
so we can in future have more polling frameworks than epoll.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
so we can in future have more polling frameworks than epoll.
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: fix stack frame creation and valgrind issues</title>
<updated>2010-03-10T16:12:02+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2010-03-10T16:12:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=674f1495ab082c8f5a604cbb5a4dadc95b8c7ebb'/>
<id>674f1495ab082c8f5a604cbb5a4dadc95b8c7ebb</id>
<content type='text'>
debugging looks now better. there was also some valgrind issues
that needed attention.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
debugging looks now better. there was also some valgrind issues
that needed attention.
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: separate scheduler fibre, change the core api</title>
<updated>2010-03-10T11:58:39+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2010-03-10T11:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=5ef38570315dc68d7ddf8d9475d9a8830528e8a4'/>
<id>5ef38570315dc68d7ddf8d9475d9a8830528e8a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: stackable timeouts</title>
<updated>2009-11-26T07:37:24+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2009-11-26T07:35:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=aa530f352b0410150bfe94c821ae32c1378b9d02'/>
<id>aa530f352b0410150bfe94c821ae32c1378b9d02</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: minor changes and new test case for network i/o</title>
<updated>2009-11-25T14:53:02+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2009-11-25T14:53:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=4db830052d941d9c6de281bc9a2f6ac212c59ad8'/>
<id>4db830052d941d9c6de281bc9a2f6ac212c59ad8</id>
<content type='text'>
fixup the internals a bit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixup the internals a bit.
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: implement basic networking i/o</title>
<updated>2009-11-25T13:11:20+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2009-11-25T13:11:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=2b19cc385163a43b1d559074a795a8aaab751185'/>
<id>2b19cc385163a43b1d559074a795a8aaab751185</id>
<content type='text'>
pretty much untested. also some slight changes to how scheduler is
invoked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pretty much untested. also some slight changes to how scheduler is
invoked.
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: implement basic file i/o with epoll</title>
<updated>2009-11-25T08:52:15+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2009-11-25T08:52:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=fc1044daf51f32b9d85f8497e4e0bd5a3c1e7fe9'/>
<id>fc1044daf51f32b9d85f8497e4e0bd5a3c1e7fe9</id>
<content type='text'>
some scetching of i/o api, and implement basic read and write
functionality. integrate polling to scheduler and an epoll based
polling mechanism.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
some scetching of i/o api, and implement basic read and write
functionality. integrate polling to scheduler and an epoll based
polling mechanism.
</pre>
</div>
</content>
</entry>
<entry>
<title>libtf: implement timeouts</title>
<updated>2009-11-24T11:26:52+00:00</updated>
<author>
<name>Timo Teras</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2009-11-24T09:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/hosted/libtf/commit/?id=3ea1a77fb5419ffd2f9c997977b383b5faf75423'/>
<id>3ea1a77fb5419ffd2f9c997977b383b5faf75423</id>
<content type='text'>
internally put sleepers to d-ary heap based priority queue. the
heap value is compared with overflow.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
internally put sleepers to d-ary heap based priority queue. the
heap value is compared with overflow.
</pre>
</div>
</content>
</entry>
</feed>
