<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intrepid Blog &#187; ithreads</title>
	<atom:link href="http://blog.affien.com/archives/tag/ithreads/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.affien.com</link>
	<description>A few thoughts</description>
	<lastBuildDate>Mon, 01 Mar 2010 00:58:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IThreads</title>
		<link>http://blog.affien.com/archives/2006/03/22/ithreads/</link>
		<comments>http://blog.affien.com/archives/2006/03/22/ithreads/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 10:22:54 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Threading]]></category>
		<category><![CDATA[ithreads]]></category>
		<category><![CDATA[locking]]></category>
		<category><![CDATA[multithreading]]></category>
		<category><![CDATA[px]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2006/03/22/ithreads/</guid>
		<description><![CDATA[While working on paradox, Kaja and I felt that we needed a cross-platform threading library, which handles all the subtle differences in capabilities and semantics of each platform`s API.
After a rewrite of Kaja`s original code, I present to you ithreads. You can find the source in this subversion repository.
svn://w-nz.com/px
At this moment ithreads gives you implementations [...]]]></description>
			<content:encoded><![CDATA[<p>While working on paradox, Kaja and I felt that we needed a cross-platform threading library, which handles all the subtle differences in capabilities and semantics of each platform`s API.</p>
<p>After a rewrite of Kaja`s original code, I present to you ithreads. You can find the source in this <a href="http://subversion.tigris.org/">subversion </a>repository.</p>
<p>svn://w-nz.com/px</p>
<p>At this moment ithreads gives you implementations of:</p>
<p>Mutex</p>
<ul>
<li>Event (aka. conditional variable)</li>
<li>Semaphore</li>
<li>R/w lock</li>
<li>Barrier</li>
<li>Gate</li>
<li>Thread</li>
</ul>
<p>By using (one or more of) the following APIs:</p>
<ul>
<li>pthreads, posix thread API (unix, linux &#8230;)</li>
<li><a href="http://www.gnu.org/software/pth/">pth</a>, portable user-space threads</li>
<li><a href="http://ds9a.nl/futex-manpages/futex4.html">futex</a>, linux`s lightweight fast hybrid locking</li>
</ul>
<p>ithreads will use generic implementations in case one of the primitives (eg. Semaphore for pthreads) isn&#8217;t available on your system.</p>
<p>I&#8217;m espacially happy with the futex based implementations. They outperform the pthreads implementation, and are a lot smaller (4 vs. ~16 bytes for a mutex in pthreads) &#8211; although they aren&#8217;t as robust (but still correct).<br />
Support for BeOS, OS/2, Windows and more will be added, but testing them will be tricky.</p>
<p>The library will still need a lot of stress testing and probably still contains some bugs &#8211; you&#8217;re warned. When everything works nicely I&#8217;ll add all kinds of extra flavours of the primitives, eg. read-favouring r/w-lock.</p>
<p>I hope it will prove useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2006/03/22/ithreads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
