<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: SICP 3.4</title>
	<atom:link href="http://eli.thegreenplace.net/2007/10/26/sicp-334/feed/" rel="self" type="application/rss+xml" />
	<link>http://eli.thegreenplace.net/2007/10/26/sicp-334/</link>
	<description>Eli Bendersky's personal website</description>
	<pubDate>Fri, 21 Nov 2008 16:52:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Vlad</title>
		<link>http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-133608</link>
		<dc:creator>Vlad</dc:creator>
		<pubDate>Sat, 11 Oct 2008 15:22:53 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-133608</guid>
		<description>About answer to 3.41

Scheme has unbound integers, that can occupate more bytes that machine word of host computer. That means that writes to memory will not be atomic and balance accessor can return "garbage"(like 8 byte number on 32-bit host that has first 4 bytes updated by set! operation in withdraw or deposit procedures and last 4 bytes from old value).</description>
		<content:encoded><![CDATA[<p>About answer to 3.41</p>
<p>Scheme has unbound integers, that can occupate more bytes that machine word of host computer. That means that writes to memory will not be atomic and balance accessor can return &#8220;garbage&#8221;(like 8 byte number on 32-bit host that has first 4 bytes updated by set! operation in withdraw or deposit procedures and last 4 bytes from old value).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eliben</title>
		<link>http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-125300</link>
		<dc:creator>eliben</dc:creator>
		<pubDate>Thu, 07 Aug 2008 17:29:05 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-125300</guid>
		<description>nobody,
Thanks - I've fixed both 3.47a and 3.47b</description>
		<content:encoded><![CDATA[<p>nobody,<br />
Thanks - I&#8217;ve fixed both 3.47a and 3.47b</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nobody</title>
		<link>http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-125143</link>
		<dc:creator>nobody</dc:creator>
		<pubDate>Mon, 04 Aug 2008 23:54:25 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-125143</guid>
		<description>I think there is a bug in 3.47a.  The comparison (&#62; count 0) should be done while mutex is acquired, too.  With current implementation the following is possible:
* count = 1
* thread T1 finds out that count &#62; 0, then T1 is swapped out
* T2 finds out that count &#62; 0, acquires the mutex, updates count to 0, releases mutex
* T1 acquires the mutex, updates count to -1... oops</description>
		<content:encoded><![CDATA[<p>I think there is a bug in 3.47a.  The comparison (&gt; count 0) should be done while mutex is acquired, too.  With current implementation the following is possible:<br />
* count = 1<br />
* thread T1 finds out that count &gt; 0, then T1 is swapped out<br />
* T2 finds out that count &gt; 0, acquires the mutex, updates count to 0, releases mutex<br />
* T1 acquires the mutex, updates count to -1&#8230; oops</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mats</title>
		<link>http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-115503</link>
		<dc:creator>mats</dc:creator>
		<pubDate>Wed, 12 Mar 2008 04:11:41 +0000</pubDate>
		<guid isPermaLink="false">http://eli.thegreenplace.net/2007/10/26/sicp-334/#comment-115503</guid>
		<description>thanks, this helped me.</description>
		<content:encoded><![CDATA[<p>thanks, this helped me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
